这个for循环是如何工作和结束的
How does this for loop work and end?
有两个初始化,没有" x<y
"来限制迭代。那么这个循环是如何工作的呢?
var features = [{
position: new google.maps.LatLng(-33.91721, 151.22630),
type: 'info'
}, {
position: new google.maps.LatLng(-33.91539, 151.22820),
type: 'info'
}, {
position: new google.maps.LatLng(-33.91747, 151.22912),
type: 'info'
}];
for (var i = 0, feature; feature = features[i]; i++) {
addMarker(feature);
}
在Javascript中访问超出边界的索引将产生undefined
,这是一个假值。一旦索引超出了范围,feature = features[i]
赋值(计算结果为它所赋的值)将被认为是false
,并且循环将退出。
有一个快捷方式,如果您希望分配和返回相同的值,可以执行return variable = value
。这将返回value
var x;
function notify(v){
return x = v;
}
console.log(notify(10))
所以在你的代码中,当你执行feature = features[3]
时,因为features[3]
是未定义的,它返回undefined
,这是假的。因此你的循环中断了。
var x = 0;
if(x = 1){
console.log('Success')
}
else{
console.log('Error')
}
if(x = undefined){
console.log('Success')
}
else{
console.log('Error')
}
注意如果features[i]
返回0
或false
或undefined
或任何其他假值,则循环将中断。
相关文章:
- Javascript:selenium Web驱动程序isDisplayed()不工作
- jQuery UI自动完成突然停止工作
- Javascript”;结束”;函数工作不稳定
- 主页键和结束键don'在页面上创建弹出窗口时无法工作
- 上的jQuery.on('已结束')无法在移动设备上工作
- 动画结束侦听器无法正常工作
- 等待函数结束(在 async.series 中)无法按预期工作
- 代码镜像 - 覆盖主页/结束按钮以正常工作
- 通过 JavaScript 结束 nintex 工作流
- 检测youtube视频何时结束-不工作
- heroku上的后台工作网络是如何知道的's结束了
- HTML5循环4视频后结束之前的视频在phoneGap android应用程序不工作
- 开始在和结束在使用角度火未按预期工作:0.8.0
- 结束事件视频不工作
- 这个for循环是如何工作和结束的
- Firefox在动画结束时从DOM中删除元素时会闪烁,而在Chrome中则可以正常工作
- jquery .html()结束后,绑定就不能工作了
- 触摸结束事件不正常工作在铬
- 在nodejs + express中结束请求后执行工作
- 表单不提交't工作结束时更改输入值