Mol*_*ama 1 javascript for-loop break boolean-expression
我不知道这是可能的(是吗?)
下面的代码显然记录了值1到5,然后突破了'for'循环,因为返回了'false'值.
function x() {
for (var i = 0; i < 10; i++) {
console.log(i);
if (i == 5) return false;
}
return true
}
console.log(x());
Run Code Online (Sandbox Code Playgroud)
我的问题是:
为什么返回'false'时for循环会短路?我看了MDN但是没有任何关于使用'false'来打破for循环的东西.也尝试过看ECMA的规格,但遗憾的是太棒了.
为什么函数不会向控制台返回'true',因为'for'循环执行后存在'return true'语句?即使错误以某种方式返回'第一',也不应该'真'返回最后还是?
return false 没有打破你的循环,但回到外面的控制.
function x() {
for (var i = 0; i < 10; i++) {
console.log(i);
if (i == 5) return false;
}
return true
}
console.log(x())
Run Code Online (Sandbox Code Playgroud)
输出:
0
1
2
3
4
5
false //here returning false and control also
Run Code Online (Sandbox Code Playgroud)
哪里break会打破你的循环,而不是从功能出来.
function x() {
for (var i = 0; i < 10; i++) {
console.log(i);
if (i == 5) break;
}
return true
}
console.log(x())
Run Code Online (Sandbox Code Playgroud)
将输出:
0
1
2
3
4
5 //after this loop is breaking and ouputing true
true
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6329 次 |
| 最近记录: |