JavaScript 讲解方式——从小到大。
举例:乘除比加减运算符的优先级要高,乘除会优先形成更小一级的语法结构,加减会形成更高级的语法结构。如果需要,可以使用 ()
来提升加减运算符的优先级,因为 ()
的优先级比乘除更高。
下面按照运算符优先级从高到低的顺序开始讲。
举例:
// 先计算 new a(),再用结果跟 () 配合使用
new a()()
// 现计算 new a(),在将结果跟前面的 new 使用
new new a()
一个 Refrence 分两个部分:Object 和 Key(String 或者 Symbol)
// 先执行 new a(),在执行属性访问 ['b']
new a()['b']
// √
a.b = c
// ×
a + b = c
JS 中,一个表达式不是左值(能不能放在等号左边),那么一定是右值。
从下面一级开始,就都是 right hand expression 了,在 JS 里, left hand expression 几乎一定是 right hand expression,反之就不是的了
JS 唯一右结合的运算符:**
3 ** 2 ** 3
// 等同于
3 ** (2 ** 3)
JS 大部分的运算符都是左结合的
*
/
%
+
-
<<
>>
>>>
<
>
<=
>=
instanceof
in
==
!=
===
!==
&
^
|
&&
||
? :