console.log(2 + 3 * 4); // 输出14
上面的代码先执行了3 * 4,结果为12,然后再加上2得到14。这是因为乘法的优先级比加法高,所以 3 * 4 会先执行,得到12。如果不了解优先级的规则,可能会得到错误的结果:
console.log((2 + 3) * 4); // 输出20
上面的代码虽然和第一个例子中的代码很相似,但结果却完全不同。这是因为括号提高了加法的优先级,所以2 + 3会先执行,得到5。然后这个结果再乘上4,得到20。JavaScript中的操作符优先级大致可以分为以下八个等级(从高到低):1. 圆括号,即最高优先级。2. 成员访问(点操作符和方括号操作符[])。3. 自增/自减(++和--)。4. 一元操作符(+、-、!、~、typeof、void和delete)。5. 算术操作符(*、/和%)。6. 算术操作符(+和-)。7. 比较操作符(<、<=、>、>=、==、!=、===和!==)。8. 逻辑操作符(&&和||)。圆括号具有最高的优先级,并且可以用来改变表达式的计算顺序:
console.log(2 + 3 * 4); // 输出14
console.log((2 + 3) * 4); // 输出20
成员访问操作符(点操作符和方括号操作符[])具有第二高的优先级。例如:var person = { name: '张三', age: 20 };console.log(person.name.length); // 输出2在这个例子中,点操作符的优先级比括号的优先级要高,所以表达式先计算person.name,然后再计算name.length。自增/自减操作符的优先级要高于一元操作符,例如:var x = 10;console.log(++x); // 输出11console.log(typeof --x); // 输出"number"在这个例子中,自增和自减符号的优先级比typeof和-操作符都要高。一元操作符的优先级要高于算术操作符和比较操作符,例如:
var x = -10;console.log(typeof typeof x); // 输出"string"console.log(!(x > 0)); // 输出true在这个例子中,一元操作符的优先级比算术操作符和比较操作符都要高。算术操作符具有比较操作符更高的优先级。例如:
console.log(1 + 2 * 3 >7 - 1); // 输出true
在这个例子中,算术操作符的优先级比比较操作符要高,所以乘法会先执行。因此,表达式的结果为 true。逻辑操作符的优先级最低,例如:console.log(true || false && true); // 输出true
在这个例子中,逻辑与运算符优先级比逻辑或运算符要高,因此false && true会先执行。最终的结果为true。总的来说,JavaScript中的优先级是确定的,我们只需要记住操作符的优先级,就可以正确地计算表达式了。在编写代码时,尽量使用括号来明确表达式的优先级,可以避免大多数优先级引起的错误。上一篇:javascript中url ctx
下一篇:css抽象语法树工具









