- 表达式语句由 运算符连接变量 或者 直接量构成
直接量 直接用某种语法写出来的具有特定类型的值 "Hello world"; 123; null; true; false; 直接量的形式定义对象 ( function、{和class开头的表达式语句与生命语句有语法冲突 所以要加上括号来避免语法冲突 ) ({}); (function(){}); (class{ }); []; /abc/g; 标识符引用 this; myVar;* 通常是用于访问对象成员 a.b; a["b"]; new.target; // 判断函数是否被new调用 super.b; // 构造函数中 访问父类的属性的语法 不带参数列表的new运算优先级更低 不属于 Member ExpressionC. NewExpression NEW 表达式
Member Expression 加上 new 就是 New Expression ( JS中默认独立的高优先级表达式都可以构成低优先级表达式 ) class Cls{ constructor(n){ console.log("cls", n); return class { constructor(n) { console.log("returned", n); } } } } new (new Cls(1)); // cls 1 // returned undefined 第一层new 首先调用了构造函数里面的 cls 第二层new 调用了 return // new (new Cls(1)) (1) ; // returned 1a.b(c)(d)(e); a.b(c)[3]; a.b(c).d; a.b(c)`xyz`; Call Expression 就失去了比 New Expression 优先级高的特性,这是一个主要的区分a += b; a = a + b; 一共有这么多种效果 : *=、/=、%=、+=、-=、<<=、>>=、>>>=、&=、^=、|=、=G. Expression 表达式
表达式就是用逗号运算符连接的赋值表达式 比赋值运算优先级更低的就是逗号运算符 a = b, b = 1, null; ( 顺序执行 )
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/176717.html原文链接:https://javaforall.net
