拥有这样的逻辑运算符有什么意义:r == 0 && (r = i);?
function do()
{
var r = 0;
var i = 10;
r == 0 && (r = i);
}
Run Code Online (Sandbox Code Playgroud)
这是否与:
if (r==0)
{
r=i;
}
Run Code Online (Sandbox Code Playgroud)
总是对我有帮助的是将其翻译成文字
var r = 0;var i = 10;r == 0 && (r = i);翻译为
简而言之,让我们忘记 1 和 2。
在 javascript 中,布尔比较中的执行流程是,如果 && 中的任何部分失败,则停止执行 if 语句参数。
布尔比较将从左到右执行。
1 == 1 && 2 == 3 && (r = i)
Run Code Online (Sandbox Code Playgroud)
它将传递1 == 1失败2 == 3并且永远不会到达分配操作。
基本上它是以下内容的简写:
if(r == 0) {
r = i;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1372 次 |
| 最近记录: |