&&'的Javascript用法运算符,而不是if条件
问题描述:
具有这样的逻辑运算符有什么意义: r == 0&&(r = i);
?
What's the point of having this logical operator like this: r == 0 && (r = i);
?
function do()
{
var r = 0;
var i = 10;
r == 0 && (r = i);
}
与以下相同:
if (r==0)
{
r=i;
}
答
始终能帮助我将其翻译为单词
What always helps me is translating it to words
-
var r = 0;
-
var i = 10;
-
r == 0&&(r = i);
翻译为
- 将变量r设置为零
- 将变量i设置为十
- 如果变量r等于零,并且返回以下语句将变量r设置为变量i的值"
- 什么也不做,但是r现在是10.
简而言之,让我们忘记1和2.
so in short, let's forget about 1 and 2.
在javascript中,布尔比较器中的执行流程是:如果&&中有任何部分,则停止执行if语句参数.失败.
In javascript the execution flow in a boolean comparisan is to stop execution of if statement parameters if any part from the && fails.
布尔比较将从左到右执行.
An boolean comparisan will execute from left to right.
1 == 1 && 2 == 3 && (r = i)
它将在 2 == 3
上通过 1 == 1
失败,并且永远不会到达分配操作.
it will pass 1 == 1
fail on 2 == 3
and never reach the assigment operation.
基本上是以下内容的简写:
Basically it's a shorthand for:
if(r == 0) {
r = i;
}