首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >javascript中while条件中变量的声明

javascript中while条件中变量的声明
EN

Stack Overflow用户
提问于 2009-11-11 05:05:07
回答 3查看 25.7K关注 0票数 42

本质上,我试图在条件中声明一个变量--javascript中while循环的一部分:

代码语言:javascript
复制
while (var b=a.pop()) {
  do_sth(b)
}

然而,我的浏览器(firefox)不接受这一点。相反,我必须这样做:

代码语言:javascript
复制
var b
while (b=a.pop()) {
  do_sth(b)
}

这是可行的。这是意料之中的行为吗?

EN

回答 3

Stack Overflow用户

发布于 2009-11-11 05:06:42

是的,是这样的。

如果需要,可以使用for循环,如下所示:

代码语言:javascript
复制
for (var b; b = a.pop(); ) {      //Note the final semicolon
    do_sth(b);
}
票数 44
EN

Stack Overflow用户

发布于 2009-11-11 05:08:45

JavaScript没有块作用域。它有函数作用域。因此,为了确保人类和JavaScript以相同的方式阅读代码,您应该手动将您的var声明提升到函数的顶部。

下面是JSLint对你的代码的评价:

代码语言:javascript
复制
Problem at line 1 character 8: Expected an identifier and instead saw 'var'.

使用JSLint,至少在你学习JavaScript的时候。你很快就会学到很多东西。这会伤害你的感情。

票数 16
EN

Stack Overflow用户

发布于 2009-11-11 05:08:00

JavaScript没有块作用域。所以所有的var声明都在函数作用域中。因此,在JavaScript中声明while表达式中的变量是没有意义的。

此外,您应该以分号结束语句。这不是绝对必要的,但强烈建议您这样做。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1711173

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档