美文网首页
学习笔记4-表达式和运算符

学习笔记4-表达式和运算符

作者: kjiwu | 来源:发表于2020-02-12 14:41 被阅读0次

表达式和运算符

运算符

运算符 说明 示例
+ 加法 3+4 //7
- 减法 4-2 //2
/ 除法 4/2 //2
* 乘法 3*4 //12
% 取余 4%3 //1
- 负号 -4
+ 正号 +4
++ 自增 ++x, x++
-- 自减 --x,x--

自增和自减

前置自增(自减),优先增加(减少),然后赋值给变量;
后置自增(自减),优先赋值给变量,然后增加(减少);
如果自增(自减)不赋值给其他变量,前置后置效果是一样的;

    let number;
    let number1 = 10;
    number = ++number1;
    console.log(number, number1); // 11 11
    number = number1++;
    console.log(number, number1); // 11 12

    number = --number1;
    console.log(number, number1); // 11 11
    number = number1--;
    console.log(number, number1); // 11 10

    number1++;
    console.log(number1); // 11
    ++number1;
    console.log(number1); // 12

运算符优先级

高优先级运算优先低优先级运算符,搞不清楚时,善用括号

比较运算符

  • 相等(===, ==)\
  1. ===,严格相等,引用的是相同的对象,或者拥有相同类型(基本类型)和相同的值;
  2. ==,非严格相等,属于同一个对象,或者强制转化为相同的值;
    let num = 33;
    let str = '33';
    console.log(num === str); // false
    console.log(num == str); // true
  • 关系运算符
    小于(<), 小于等于(<=), 大于(>), 大于等于(>=)
    比较运算符比较的是拥有自然排序特性的数据类型,比如,字符串,数字;

比较数字

  • NaN与任何值不相等,包括自己(NaN)
  • 小数比较时,特别注意,他们之间不要直接比较,而是通过差值和Number.EPSILON比较;
    // 因为双精度问题,此循环会一致运行的
    let number = 0.1;
    while (true) {
        number += 0.1;
        if (number === 0.3) break;
        console.log(number);
    }

    let number = 0.1;
    while (true) {
        number += 0.1;
        if (Math.abs(number - 0.3) < Number.EPSILON) break;
        console.log(number);
    }

真值和假值

  1. 假值
    • undefined
    • null
    • false
    • 0
    • NaN
  2. 除了假值,全为真值,惊喜不

与,或和非

与(&&) 或(||) 非(!)
同时满足为真 满足一个条件即为真 取反
x y x&&y
false false false
true false false
false true false
true true true
x y x||y
false false false
true false true
false true true
true true true
x !x
false true
true false

条件运算符

表达式1 ? 表达式1为true表达式 : 表达式1为false表达式

位运算符

运算符 描述 示例
& 位与 0b1 & 0b0 = 0b0
| 位或 0b1 | 0b0 = 0b1
^ 位异或 0b1 ^ 0b0 = 0b1, 0b1 ^ 0b1 = 0b0
~ 位非 ~0b1 = 0b0, ~0b0 = 0b1
<< 左移位 0b1 << 1 = 0b10
>> 右移位 0b10 >> 1 = 0b1
<< 补零右移位 1 << 1 = 0b10

类型判断运算符

表达式 返回值
typeof undefined "undefined"
typeof null "object"
typeof {} "object"
typeof true "boolean"
typeof 1 "number"
typeof "" "string"
typeof Symbol() "symbol"
typeof function(){} "function"

解构赋值

解构赋值,允许把一个对象或者数组分解成多个单独的值

    const obj = { a: 2, b: 3};
    let {a, b} = obj;
    console.log(a, b); //2, 3

    const arr = [1, 2, 3];
    let [a, b] = arr;
    console.log(a, b); //1, 2

    const arr = [1, 2, 3, 4];
    let [a, b, ...rest] = arr;
    console.log(a, b, rest); //1, 2, [3, 4]

展开运算符(...),应用于数组或者对象。 一个对数组或者对象进行展开插值 一个是对数组或者对象进行局部的赋值

对象和数组运算符

运算符 描述
. 成员访问
[] 成员访问
in 判断属性是否存在
new 实例化对象
instanceof 原型链测试
... 展开运算符
delete 删除运算符

相关文章

  • 学习笔记4-表达式和运算符

    表达式和运算符 运算符 运算符说明示例+加法3+4 //7-减法4-2 //2/除法4/2 //2*乘法3*4 /...

  • js笔记之运算符

    一:运算符和表达式 1.三目运算符(三元运算符) 表达式1?:表达式2:表达式3; ...

  • 2018-05-25笔记

    一:运算符和表达式 1.三目运算符(三元运算符) 表达式1?:表达式2:表达式3...

  • 三目运算符,函数,声明提前

    一:运算符和表达式 1.三目运算符(三元运算符) += -= *= /= %= 表达式1?:表达式2:表达式3...

  • 《JavaScript 权威指南(第六版)》二——表达式运算符

    第四章:表达式和运算符 2017.02.21-2017.02.22 表达式和运算符 表达式(expression)...

  • C语言6 运算符和表达式

    C语言6 运算符和表达式 运算符与表达式 什么是运算符?什么是表达式? 表达式的结果 表达式不论怎么复杂。最终只有...

  • JS基础学习(二)

    表达式和运算符语句 表达式和运算符 属性访问表达式两种写法(1)expression . identifer(2)...

  • 第三天 c语言

    今天学习了运算符的优先级,为算数运算符,关系运算符,逻辑运算符,赋值运算符。for语句,表达式1表示赋值;表达式2...

  • Java基础教程(8)--表达式、语句和块

    摘要:运算符可用于构建计算值的表达式,表达式是语句的核心组成部分,语句可以组织成块。在学习完变量和运算符之后,本文...

  • MySQL 中的运算符和常用函数

    MySQL学习笔记(3) 运算符 类型:算术、比较、逻辑和位运算符 算术运算符 比较运算符 比较运算符可比较数字、...

网友评论

      本文标题:学习笔记4-表达式和运算符

      本文链接:https://www.haomeiwen.com/subject/xsqcfhtx.html