- 因不同语言,优先级不同,因此不必强行记忆,遇到不确定的,可以加圆括号提升优先级,但是如果有人拿此出题,就让人无奈了。呵呵哒。
- 以下为简单案例,写代码尽量避免下面的这些写法。
var i = '1';
typeof i++; // number - typeof的优先级低于++
typeof i + 1; // number1 - typeof的优先级高于+(二元运算符+号)
typeof i * 2; // NaN - typeof的优先级高于*
typeof +false; // number - typeof的优先级低于+(一元运算符+号)
1++'2'; // 报错,语法有误
1+ +'2'; // 3 (二元运算符+号)的优先级小于(一元运算符+号)
- ++ --的优先级高于 typeof
- typeof的优先级高于* / % + -
- ?:(唯一的三元运算符),优先级偏低,
以下排序从高到低(常用)
- ()
- . []
- ++ -- 后置
- ! ~ + - 一元运算符
- ++ -- 前置
- typeof
- * / %
- + - 二元运算符
- < <= > >= in instanceof
- == != === !==
- && || ?:
- = += -= *= /= %=
- ,
以下是官方文档的优先级详细汇总
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/Operator_Precedence
网友评论