ES10 中运算符的优先级和结合性
在 JavaScript 中,运算符是一种用于执行算术、逻辑或位操作的符号或特殊关键字。在 ES10 中,引入了一些新的运算符,同时对原有运算符的优先级和结合性进行了修订。在日常编程中,我们需要准确掌握这些运算符的优先级和结合性,以避免出现不必要的错误,提高代码的可读性和可维护性。
下面列出了 ES10 中的运算符,按照优先级从高到低的顺序排列:
运算符 | 描述 | 结合性 |
---|---|---|
member expression | 成员表达式,用于访问对象的属性和方法 | 左到右 |
call expression | 函数调用表达式,用于调用一个函数 | 左到右 |
new expression | 创建一个新对象的实例 | 左到右 |
new.target | 引用当前正在执行的函数对象的 new.target 属性 | 无 |
super | 引用当前对象的父对象 | 无 |
logical NOT | 逻辑非,对一个表达式进行取反 | 无 |
unary plus and minus | 正负号运算符 | 无 |
typeof | 返回一个表示数据类型的字符串 | 无 |
void | 对一个表达式进行求值,然后返回 undefined | 无 |
delete | 从一个对象中删除一个属性或方法 | 无 |
instanceof | 检测一个对象是否为另一个对象的实例 | 左到右 |
in | 检测一个属性是否为一个对象的成员 | 左到右 |
equality and inequality | 相等和不相等运算符 | 左到右 |
bitwise shift | 位运算符,用于对数字进行位移操作 | 左到右 |
less than, greater than等比较 | 大小比较运算符 | 左到右 |
bitwise AND | 位与运算符 | 左到右 |
bitwise XOR | 位异或运算符 | 左到右 |
bitwise OR | 位或运算符 | 左到右 |
logical AND | 逻辑与 | 左到右 |
logical OR | 逻辑或 | 左到右 |
conditional | 三元运算符,用于基于某个条件选择不同的值或表达式 | 从右到左 |
assignment | 赋值运算符,用于将一个值赋给一个变量或属性 | 从右到左 |
yield | 在生成器函数中使用,将一个值返回给迭代器 | 右到左 |
在程序执行过程中,当存在多个运算符时,根据优先级和结合性来确定计算顺序。优先级越高的运算符越先计算,结合性的方向决定了计算的结合方式。例如,左结合表示从左到右计算,右结合表示从右到左计算。
下面给出一些示例代码,帮助理解 ES10 中运算符的优先级和结合性:
-- -------------------- ---- ------- -- ----- ---- ----- ---------- -- ------- ------ ------ ------------- -- --- --- --- ------ --- ----------- -------- -- ----- ------ -- --- ----- -- ------ -- --- ----- -- ------ -- --- -- ---- - -- -- -- -- - -- -- -- -- - --- -- -- ----- - - -- -- -- - - -- -- --- - - -- -- -- -- ----- ----- - ----- - ------ -- ----- - - -- - -- -- - -- -- - -- -- - -- -- - -- -- - --- -- - --- -- - ---- -- - -- -- - -- -- - -- --展开代码
综上所述,掌握 ES10 中运算符的优先级和结合性,是编写高效、简洁 JavaScript 代码必须具备的基本技能之一。正确使用运算符不仅可以避免不必要的错误,而且可以提高代码的可读性和可维护性。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/67b96a90306f20b3a67c5dd9