权威指南第四章读书笔记。

原始表达式:表达式最小单位,不包含其他表达式:常量,关键字,变量,保留字。

一元运算符 条件运算符 运算赋值符都是右结合。

结合性指定了在多个具有相同优先级的运算符表达式中的运算顺序。

根据操作数的个数可以分为一元,二元,三元运算符。三元运算符仅有条件运算符。

运算符进行运算时往往进行隐式的转换。×把两个操作数转换为数字。

JS所有值都可以分为真值,假值,所以希望操作数是布尔值的操作符来说他的操作数可以是任意类型。

符值运算符和其他少数运算符希望他们的操作数是左值。

左值:表达式只能出现在符值运算符左侧。

变量,对象属性,数组元素都是左值。ES规范允许内置函数返回一个左值,但是自定义的函数不能返回左值。例如function see(){var a = 1; return a}是不允许的。

运算符的副作用:指代前后表达式会互相影响。例如符值运算符。给一个变量符值,那么后续使用这个变量或者属性的表达式的值都会发生改变。

++ --与此类似。因为包含隐式的赋值。delete也有副作用,删除一个属性就像给这个属性赋值undefined,实际上是因为你找不到,找不到就会出现undefined就像赋值一般,请不要误解。

对于运算符优先级。属性访问表达式和调用表达式的优先级比运算符优先级都要高。


你可能感兴趣的:(javascript)