以下代码输出结果是 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。

JavaScript 逻辑运算符 && 和自增运算符优先级示例

原文地址: https://www.cveoy.top/t/topic/lPxr 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录