美文网首页
(6) 运算符

(6) 运算符

作者: 汨逸 | 来源:发表于2019-04-05 13:03 被阅读0次

运算符

根据运算符的数量分为:一元运算符、二元运算符、三元运算符

根据运算符的功能分为:算术运算符、赋值运算符、比较运算符、逻辑运算符、条件运算符、位运算符

本章节根据功能总结运算符。

1. 算术运算符:+ - * / % ++ --

  1. +、-、*、/、%跟数学的算术运算符没有区别

    3 + 5 = 8
    10 - 4 = 6
    3 * 4 = 12
    12 / 4 = 3
    12 % 5 = 2   // 取余
    
  2. ++、--

    var num = 3;
    num++;
    console.log(num);    // 4
    
    var num = 3;
    ++num;
    console.log(num);    // 4
    
    var num = 3;
    --num;
    console.log(num);    // 2
    
    var num = 3;
    num--;
    console.log(num);    // 2
    

    由上面例子得出:无论++、--,或者是++、--在前在后,其结果都是自身增加1或者自身减1

那么++、--在前或者在后的区别是什么呢?

var num = 3;
console.log(num++);  // 3
console.log(num);    // 4

由上面例子得出:++在后,console.log()先输出num的值,之后num的值自增1变成了4

var num = 3;
console.log(++num);  // 4
console.log(num);    // 4

由上面例子得出:++在前,console.log()先自增1变成4,之后再输出num的值。

​ 再做个练习

var num = 3;
var res = num + num++;
console.log(num);   // 4 只需要关注num++有多少次,则可以获得num的值(++有一次,则num为4)
console.log(res);   // 6 num++的++在后,会先和前面的num做求和,在自增,结果就是 3 + 3 = 6
var num = 3;
var res = ++num + num++;
console.log(num);   // 5 只需要关注num++有多少次,则可以获得num的值(++有两次,则num为5)
console.log(res);   // 8 
第一个++num,num得到结果4,++在前,做中间+运算的值应该是4
第二个num++,num得到结果5,++在后,做中间+运算的值应该是4
4 + 4 = 8;

上述例举的都是++运算,--同理,只不过替换为对应的减法运算即可

注意事项

  1. 任何值都可以做算术运算(使用Number()的转换原则

    2 + true = 3;    // true会被隐性转换为1
    5 - '1' = 4
    '3' * '4' = 12
    '12' / 6 = 2;
    
    var o = { valueOf: function () { return 1; } };
    o + 1 = 2;   // 先调用o的valueOf方法,得到NaN,继续调用toString方法
    
    var num = true;
    num++;   // num = 2;
    
    '12a' / 4 = NaN; // '12a'被转换为NaN,NaN与任何值运算都为NaN
    
  2. +的特殊性

    3 + 5 = 8;   // 加法运算
    3 + '5' = 35;    // 连接运算
    

    总结:+两侧是数值类型,执行加法运算,+两侧不是数值类型,执行连接运算

  3. tips:巧妙转换其他类型为数值类型

    '3' * 1 = 3;
    '2' - 0 = 2;
    

2. 赋值运算符:= += -= *= /= %= <<= >>= >>>=

var sum = 0;
sum += 5;    // 等价于 sum = sum + 5
sum -= 5;    // 等价于 sum = sum - 5;
sum *= 5;    // 等价于 sum = sum * 5;
sum /= 5;    // 等价于 sum = sum / 5;
sum %= 5;    // 等价于 sum = sum % 5;

var num = 3;
num <<= 5;    // 等价于 num = num <<= 5;
num >>= 5;    // 等价于 num = num >>= 5;
num >>>= 5;    // 等价于 num = num >>>= 5;

3. 比较运算符 == === != !== > < <= > >=

比较运算符跟数据的比较也是一致的,我们主要说说其中需要注意的点

  1. ==和===区别

    ==和!=:先转换在比较

    ===和!==:仅比较不转换

    var num1 = 3;
    var num2 = '3';
    
    num1 == num2;    // true
    num1 === num2;   // false
    
    特殊比较:
    null == undefined;   // true
    null === undefined;  // false
    
  2. 对象的比较

    var obj1 = { title: 'Modeest' };
    var obj2 = { title: 'Modeest' };
    console.log(obj1 == obj2);   // false
    console.log(obj1 === obj2);  // false
    

    注意:obj1和obj2值相同,但是在计算机中存在两块内存地址,这里比较他们的地址,所以为false

    var obj1 = { title: 'Modeest' };
    var obj2 = obj1;
    console.log(obj1 == obj2);   // true
    console.log(obj1 === obj2);  // true
    

    此处obj1和obj2是引用赋值,在计算机中指向同一块地址,比较结果为true

4. 逻辑运算符(布尔操作符)

  • 逻辑与:&&(两真为真,其余都为假)

  • 逻辑或:||(两假为假,其余都为真)

  • 逻辑非:! (取反)

注意事项:

  1. 关注返回结果

    true && false    // false
    3 && 0   // 0
    true && ''   // ''
    
    true || false    // true
    3 || true    // 3
    0 || 'name'  // 'name'
    

    总结:逻辑与和逻辑或运算符,对两侧的值进行隐性转换,但是最终结果还是取值本身,不会获取隐性转换结果

5. 条件运算符(三元运算符)

boolean_expression ? true_value : false_value

var num = 5 > 3 ? 5 : 3;
console.log(num);   // 5

6. 位运算符

待续。。。

7. 运算符优先级

运算符优先级

相关文章

  • js运算符

    1:运算符有6种: 算术运算符 比较运算符 逻辑运算符 赋值运算符 条件运算符 逗号运算符 2...

  • java基础案例之java语言运算符算术赋值比较逻辑三元和位运算

    java运算符包含以下6种: 1:算术运算符。 2:赋值运算符。 3:比较运算符。 4:逻辑运算符。 5:位运算符...

  • 02 C各种运算符

    1、算术运算符 2、赋值运算符 3、自增自减运算符 4、sizeof运算符 5、逗号运算符 6、关系运算符 7、逻...

  • Python基础之运算符

    文章目录 1 算术运算符2 位运算符3 比较运算符4 赋值运算符5 身份运算符6 成员运算符7 逻辑运算符 今天总...

  • es6之扩展运算符 三个点(...)

    es6之扩展运算符 三个点(...)对象的扩展运算符数组的扩展运算符总结es6之扩展运算符 三个点(…)对象的扩展...

  • HTML-11day

    1、逻辑运算符 2、与或运算 3、赋值运算符 4、关系运算符 5、Unicode编码 6、相等运算符

  • python系列之基础运算符(三)

    一、运算符分类 1.算术运算符2.比较运算符3.逻辑运算符4.赋值运算符5.成员运算符6.身份运算符 算术运算符 ...

  • iOS开发之Swift学习(四)——基本运算符

    文章目录:(1)赋值运算符(2)算术运算符(3)组合赋值运算符(4)比较运算符(5)三目运算符(6)空合运算符(7...

  • 6.shell运算符

    运算符总览: 1.关系运算符: 2.布尔运算符: 3.逻辑运算符: 4.字符串运算符: 5.文件测试运算符: 6....

  • JavaScript运算符

    1.运算符总结 2.乘法运算符 3.除法运算符 4.求余运算符 5.自增自减运算符 6.加法运算符 7.减法运算符...

网友评论

      本文标题:(6) 运算符

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