Javascript 007: Operator

Arity

  • Unary: accepts one single expression. e.g. -x
  • Binary: accepts exactly 2 expressions. e.g. a*b
  • Ternary: combines 3 expressions into 1 expression, only one. i.e. ?: -- conditional operator

lval: 等号左边的variable. e.g. variables, object properties, array elements.

Arithmetic Operator

  • Basics: + - * /
    • /: all divisions have floating-point results
    • 0/0 results in NaN
  • Modulo: %
    • Returns remainder
    • 5%2 = 1
    • -5%2 = -1
    • also works for floating-point
  • Exponental: **
    • e.g. 2**8: 2 to the power of 8
    • Math.pow() also works

Note: NaN operand always result in NaN result

The binary '+' type conversion

  • 有string-like的时候自动转string,return合并后的string
    • 没有string-like的时候做纯数学加法
  • 有object的时候自动转primitive
    • Date用toString()
    • 其他object用valueOf()或者toString()
    • 转完primitive后有string,return合并后的string
    • 转完primitive后只有numbers,做纯数学加法

Note: 依然需要按顺序从左到右evaluate,此规律仅判断一个➕运算结果

1 + 2 + “something” // 3something
1 + (2+“something”)// 12something

Unary Arithmatic Operators

  • +x: converts 'x' to a number, or NaN
  • -x: converts 'x' to a number, or NaN, then flip the sign
  • ++x: adds 1 to x, use new value to do the rest of the evaluation
  • x++: adds 1 to x, use old value to do the rest of the evaluation
  • --x: subtracts 1 from x, use new value to do the rest of the evaluation
  • x--: subtracts 1 from x, use old value to do the rest of the evaluation

Bitwise Operators

  • Bitwise AND (&): Boolean AND operation on each bit
  • Bitwise OR (|): Boolean OR operation on each bit
  • Bitwise XOR (^): Boolean exclusive OR operation on each bit. i.e. either bit is true, but not both
  • Bitwise NOT (~): Reversing all bits. i.e. flipping sign and subtracting 1
  • Left shift (<<)
  • Right shift with sign (>>)
  • Right shift with zero fill (>>>)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值