js运算符优先级

  • 因不同语言,优先级不同,因此不必强行记忆,遇到不确定的,可以加圆括号提升优先级,但是如果有人拿此出题,就让人无奈了。呵呵哒。
  • 以下为简单案例,写代码尽量避免下面的这些写法。
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

你可能感兴趣的:(js运算符优先级)