ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

九、JS中的运算符

2022-02-28 17:03:08  阅读:158  来源: 互联网

标签:操作数 false 逻辑 JS 运算符 110 true


1、运算符两侧的操作数的数据类型一定是一样的,如果不一样,会发生隐式类型转化
2、NaN与任何数据计算都是NaN,在关系运算符中任何数据和NaN进行比较,结果都是false

1、运算符从功能上分类:

  • 1、算数运算符:+ - * / %

    • 优先级:* / % 高于+ -,如果优先级一样,则从左到右计算(左结合性)
      • 加号运算符
        • 任何非数值(非字符串)的数据在参与加法运算之前,都会自动隐式转化成数值类型,再参与计算(true→1、null→0)
        • 任何数据和字符串相加,+就变成了字符串拼接运算符,不再是加号
      • 减号运算符
        • 任何非数值(非字符串)的数据在参与减法运算之前,都会自动隐式转化成数值类型,再参与计算
        • 任何数据和字符串相减,都会尝试把字符串转化成数字,再进行运算
      • 乘号运算符
        • 同减号运算符
      • 除号运算符
        • 1 / null //Infinity(无穷大,null转化成0)
      • 除余运算符
        • 3 % 0 //NaN
        • 10 % -3 //1
        • -10 % 3 //-1
        • 在除余时,会对参加运算的数先取绝对值,最后的结果与被除数的正负值相同。
  • 2、赋值运算符:=、+=、-=、*= 、/=、%=(从后向前计算)

    • 优先级低于算术运算符
    • = 有副作用,整体也有一个值,是左值,c = 110,c是110,110是110,c=110也是110
  • 3、自增自减运算符:++、- -(一元运算符)

    • ++在前和++在后在整体上的值是有区别的,但操作数的值肯定加1
    • a++整体的值是一个旧值,没有加1的值,操作数(a)的值加1
    • ++a整体的值是一个新值,加1后的值,操作数(a)的值加1
  • 4、关系运算符(>、<、>=、<=、==、===、!=、!==)

    • 对非数值类型的数据,会先转换成数值类型
    • 任何数据和NaN比较,结果都是false
    • 运算符两侧操作数的数据类型要一致,如果不一致,会发生类型转化
    • undefined会尝试转化成number,und转成number结果是NaN
    • 字符串的比较会转成ASCLL码
  • 5、逻辑运算符(逻辑与&&、逻辑或||、逻辑非!)

    • 逻辑与:只有两个操作数,都为true,结果才为true
    • 逻辑或:只要有一个操作数为true,结果就为true
    • 逻辑非:一元运算符,如果true,逻辑非后,就为false,如果是false,逻辑非后,就为true。
    • 0会隐式转化成false,但是整体的值不是转化后的值,整体的值是转化之前的值,会输出0而不是false
    • 使用逻辑运算符进行逻辑运算时,操作数如果不是布尔值,会发生隐式类型转化,转化成布尔值(undefined转化成false)
    • 如果第1个操作数可以决定整体的值,那么就不会再运算第二个操作数
    • 如果第1个操作数就决定了整体的值,那么最终的结果就是第1个操作数的值
    • 如果第1个操作数不能决定整体的值,那么整体的值就是第2个操作数的值

2、运算符从操作数的个数分类:

一元:逻辑非、+“123”
二元:+、- 、* 、
三元:?:(表达式?结果A:结果B)

标签:操作数,false,逻辑,JS,运算符,110,true
来源: https://blog.csdn.net/weixin_45725778/article/details/123176564

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有