zoukankan      html  css  js  c++  java
  • javaScript 运算符(操作符)

    类别

    操作符

     
    算术操作符 +、 –、 *、 /、 %(取模)  
    字符串操作符 + 字符串连接   +=字符串连接复合  
    布尔操作符 !、 &&、  ||   
    一元操作符 ++ 、 -- 、  +(一元加)、    -(一元减)  
    关系比较操作符 < 、 <= 、 >  、>=、   !=  、 == 、  === 、  !==   
    按位操作符 ~ 按位非    &按位与     | 按位或     ^按位异或    <<左移    >>有符号右移      >>>无符号右移  
    赋值操作符 = 、   复合赋值(+=、-=、*=、%=)   复合按位赋值(~=、&=、|=、^=、<<=、>>=、>>>=)  
    对象操作符 .属性访问、[]属性或数组访问、 new调用构造函数常见对象、delete变量属性删除、void(返回undefined)、in判断属性、instanceof原型判断  
    其它操作符 ?: 条件操作符、,逗号操作符、()分组操作、typeof类型操作符  

    一个表达式叫操作,两个及以上叫运算。

    JavaScript中的大多数运算符是一个二元运算符(binary operator),将两个表达式合并成为一个稍复杂的表达式。譬如a*b中的乘法运算符*,就是一个二元运算符。表达式-x中的-运算符就是一个一元运算符,是将操作数x求负值。最后,JavaScript支持一个三元运算符(ternary operator),条件判断运算符?:,它将三个表达式合并成一个表达式。

    这次想写下一元操作符 + -

    上题 :

    a = 1
    'a' + + 'b'
    a +++ a
    a ++ + ++ a

    a ++ 'b' ==>a + +'b';+'b' 会进行一元加操作相当于 Number('b'),将表达式转换成数字。即 aNaN)(要注意+ +中间空格)

    a +++ a==>a++ + a; ,++一元操作符优先级高于算数操作符 + ,a++运算之后加1,所以当前a为1,后一个a为2。即 3

    a ++ + ++ a==>和上一个相似。结果为6

    这里想弄明白原因必须要知道优先级、结合性、运算顺序

    优先级:属性访问 > 一元操作符 > 乘除 > 加减 > 比较 > 相等 > 与运算 > 或运算 > 三目运算 > 赋值运算>逗号(不参与运算)

    结合性(左、右结合):一行代码中存在多个运算符,且这些运算符的优先级相等。所有一元操作符、三目运算符和赋值运算符都是右结合,其他的操作符都是左结合

    x = a ? b : c ? d : e ? f : g;==> x = a ? b : (c ? d : (e ? f : g));

    运算顺序:表达式里还包含表达式从左向右运行。例如 a +++ a ==》((a++) + a )

    注意:++ 和 + + 区别很大;连续 + 不能超过3个;++不能操作数字;数字 + NaN = NaN

  • 相关阅读:
    苏教版国标本小学语文第一册汉字笔画
    C++ preprocessor __VA_ARGS__ number of arguments
    The Aggregate Magic Algorithms
    USB Mass Storage大容量存储的基本知识
    【转】驱动和应用层的三种通信方式
    Do You Actually Know What *P++ Does In C?
    Repeat Macro Cloak
    A SCSI command code quick reference
    USB device layout, descriptors, interface alternate setting
    RTOS Semaphore Services
  • 原文地址:https://www.cnblogs.com/dopocheng/p/13931216.html
Copyright © 2011-2022 走看看