请教赋值运算符的含义及代码var x = 0 !=1;结果为true的原因
赋值运算符与表达式优先级解析
你的代码var x = 0 !=1;涉及两个核心运算符,结果的由来可以从运算符优先级和运算逻辑两方面拆解:
- 首先,JavaScript中运算符有明确的优先级规则:不等于运算符
!=的优先级高于赋值运算符=。所以代码会先执行0 != 1这个判断:!=的作用是判断两个值是否不相等,0和1是完全不同的数值,因此这个表达式的计算结果是布尔值true。
- 接着,赋值运算符
=会把前面计算得到的true赋值给变量x,最终x的值就是true。
如果需要先执行赋值再做判断,得用括号改变优先级,比如写成var x = 0; x != 1;,此时变量x会被赋值为0,后续x != 1的判断结果依然是true,但x本身的值保持为0。
内容的提问来源于stack exchange,提问作者SoupriceCoder
相关产品推荐
相关产品推荐

