JavaScript 表达式 Expression
Expressions
-
Member
-
返回 Reference 类型
- Object
- Key
delete、assign 才能体现出引用的特点
-
a.b
-
a[b] (顺便提一下 上周在项目里面想写一个函数动态获取对象的属性,上网查了资料,用的就是这个)
-
foo_string_
-
var name = 'world' function foo() { // 这里是能够拿到 arguments 的 console.log(arguments) }
-
-
super[‘b’]
-
new.target
-
function foo() { console.log(new.target) } foo() // undefined function bar() { console.log(this) } var fackObject = {} Object.setPrototypeOf(fackObject, bar.prototype) fackObject.constructor = bar bar.apply(fackObject)
-
-
new Foo()
-
-
new Foo
-
Call
-
foo()
-
super()
-
foo().b
-
foo()[‘b’]
class foo { constructor() { this.b = 1 } } new foo()['b'] // 1
-
foo())_abc_
-
-
LeftHandside && RightHandSide
等号的左边与等号的右边
LeftHandside - Runtime -=> Reference
-Grammar => Left Handside
-
Update
no line terminator here 不能换行
-
a++
// 在 chrome 开个 devtools,然后输入的时候,记得 shift + return var a = 1, b = 1, c = 1; a ++ b ++ c ++ [a, b, c]
-
a--
-
++a
-
—a
-
-
Unary(不知道怎么翻译,看做一元运算符???)
delete a.b void 0 // 有标准推荐这么写 undefined typeof a +a -a ~a !a await a
-
Exponental
**
-
Mutiplicative
*/%
-
Addative
- +
-
Shift
>> << >>>
-
Relationship
> < >= <= instanceof in -
Equality
=== !=== == !==
-
Bitwise 位运算
^ | ^
-
Logical
&& ||
短路逻辑 (这个在 React 里面经常用)
a && b a为true时,b才会执行 a || b a或b为true,a或b才会执行
-
Conditional
?: