JavaScript 逻辑运算符 && 和自增运算符优先级示例
以下代码输出结果是 x = 0; y = 0。
var x, y;
x = 0;
y = x && (++x);
document.write('x=' + x + ';y=' + y);
如果是 'y = (++x) && x;',则输出结果是 x = 1; y = 1。
解释:
在第一个代码示例中,y 的值由表达式 x && (++x) 决定。由于 x 的初始值为 0,而 0 在逻辑运算中被视为 false,因此 && 运算符不会执行后面的自增操作 (++x)。所以 x 保持为 0,y 也为 0。
在第二个代码示例中,y 的值由表达式 (++x) && x 决定。由于 ++x 会先将 x 的值自增为 1,然后返回新的值 1,而 1 在逻辑运算中被视为 true,因此 && 运算符会继续执行后面的表达式 x,并将其值赋给 y。所以 x 为 1,y 也为 1。
原文地址: https://www.cveoy.top/t/topic/lPxr 著作权归作者所有。请勿转载和采集!