作为 JavaScript 的开发人员,我们都要写很多的
循环来完成特定的效果。 前几个月我看到了另一种语法,我真的很喜欢。 这样可以节省一些时间,并且它们看起来更漂亮。 然而我的另一个同事却说,这个奇特的语法是正确的。
比方说,我代表用户在一个系统中数据的数组。 那么之前我写的代码是:
var users = [ { name: "A"}, { name: "B"}, { name: "C"}, { name: "D"}, { name: "E"}];
还有一个额外的列变种
。通常我感觉更舒服,如果我有
,而不是
。 因此新的方式:
for(var i = 0; user = users[i]; i++) {// ...}
我写了一个问题,在 StackOverflow 的和球员那里发现了问题。 如果一些数组的元素是
这种语法将不起作用。 也就是说,如果我有:
var users = [{ name: "A"},{ name: "B"},false,{ name: "D"},{ name: "E"}];
该循环将停止第三元素上,因为
将是错误的。 我们当然可以解决这通过检查变量的类型:
for(var i=0; typeof (user=users[i]) !== "undefined"; i++) {// ...}
即使是这样,是不完美的,因为如果事情是
,我们会在同样的情况,得出的结论是,我们可以使用第二个语法只有当我们是 100% 肯定,我们的元素是
。