• 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

  • 相关阅读:
    引入包时“”与<>的区别
    Scanners
    一个SQLite数据库的LIKE查询和IN集合查询的代码实例
    @synchronized线程同步互斥锁
    makeKeyAndVisible
    NSString 数字判断
    UILabel UITextField UITextView
    (转载)JAVA SE6.0 中使用SplashScreen
    转帖(http://hi.baidu.com/johnehuang/blog/item/e1e96782a4b04e97f703a6dc.html)
    ce
  • 原文地址:https://www.cnblogs.com/dopocheng/p/13931216.html
Copyright © 2020-2023  润新知