js语法(5)

赋值表达式 右边部分

  1. 右值表达式 ( RightHandSideExpression )
    在JS中 规定在等号右边表达式叫做条件表达式
    运算符的优先级 语法角度-> 表达式结构

    乘法表达式和加号运算符构成加法表达式

  2. 更新表达式 UpdateExpression

    – a;
    ++ a;
    a –
    a ++

  3. 一元运算表达式 unaryExpression
    只需要一个表达式的运算符 叫做一元运算符
    5+6 ( +号需要两个操作数 )
    5++ ( ++ 只需要一个操作数 )

    更新表达式搭配一元运算符,可以形成一元运算表达式

    delete a.b;
    void a;
    typeof a;

    • a;
      ~ a;
      ! a;
      await a;
  4. 乘方表达式 ExponentiationExpression

    ++i ** 30
    2 ** 30 //正确
    -2 ** 30 //报错

  5. 乘法表达式 MultiplicativeExpression

     x * 2;
     乘法表达式有三种运算符 :
         *
         /
         %
    
  6. 加法表达式 AdditiveExpression
    加法表达式是由乘法表达式用加号或者减号连接构成的

     a + b * c
    
     加法表达式有两种运算符: + -
    
  7. 移位表达式 ShiftExpression
    移位运算把操作数看做二进制表示的整数,然后移动特定位数
    所以左移 n 位相当于乘以 2 的 n 次方,右移 n 位相当于除以 2 取整 n 次。

    移位表达式由加法表达式构成
    移位是一种位运算 分三种:

     << 向左移位
     >> 向右移位
     >>> 无符号向右移位
    
  8. 关系表达式 RelationalExpression

    <= 和 >= 关系运算,完全是针对数字的,所以 <= 并不等价于 < 或 ==

    <=

    =
    <

    instanceof
    in

    null <= undefined
    //false
    null == undefined
    //true

  9. 相等表达式 EqualityExpression

    !=

    !==

    类型不同的变量比较时==运算只有三条规则:
    undefined 与 null 相等;
    字符串和 bool 都转为数字再比较;
    对象转换成 primitive 类型再比较。

     几个不太寻常的类型转换案例:
         false == '0' // true
         true == 'true' // false
         [] == 0 // true
         [] == false // true
         new Boolean('false') == false // false
    
         一个是即使字符串与 boolean 比较,也都要转换成数字;
         另一个是对象如果转换成了 primitive 类型跟等号另一边类型恰好相同,则不需要转换成数字
    
     == 尽量用在 判断 Number 和 String类型之间使用
    
  10. 位运算表达式

    按位 与(&) 表达式 BitwiseANDExpression

    按位 异或(^) 表达式 BitwiseANDExpression

    异或运算有一个特征就是 两次异或运算相当于取消 可以拿这个技巧来做值的交换
    
        let a = 102, b = 324;
    
        a = a ^ b;
        b = a ^ b;
        a = a ^ b;
    
        console.log(a, b);
    

    按位 或(|) 表达式 BitwiseORExpression。

  11. 逻辑 与 表达式 逻辑 或 表达式

    false || 1;

    false && undefined;

  12. 条件表达式 ConditionalExpression 三目表达式

    condition ? branch1 : branch2

  13. JS中所有的运算符优先级和结合性
    https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/Operator_Precedence

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值