JavaScript:什么时候可以省略大括号?

标签 javascript

我今天注意到 JavaScript 对象的循环可以使用更少的大括号来完成。

例如,正常的做事方式:

// The normal way
var foo = {
    bar: 1
};

for(var key in foo) {  
    if(foo.hasOwnProperty(key)) {
        console.log(foo[key]); // prints out 1
    }
}

替代方案,通过删除额外的 { ... } 并且它仍然有效:

// The alternative
var foo = {
    bar: 1
};

for(var key in foo) if(foo.hasOwnProperty(key)) { // <-- see :)
    console.log(foo[key]); // prints out 1
}

但是,我不太确定为什么这是可能的。所以我的问题是:什么时候可以省略大括号?我得到了反对票,说“太宽泛”,所以我试图强调我不是在寻找一百万个用例,简短的回答很适合解释基础知识。

提前致谢!

最佳答案

只要只有一个语句,您就可以省略大括号。

for (var x in obj) {
    console.log(x);
}

可以变成

for (var x in obj)
    console.log(x);

但如果你有

for (var x in obj) {
    console.log(x);
    console.log(x);
}

它需要大括号。


这有点不一致。例如,它适用于 forwhileif,但不适用于 trycatch。为了保持一致性,我总是使用大括号。

关于JavaScript:什么时候可以省略大括号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24872513/

相关文章:

javascript - AngularJS:如何停止 ng-click 的事件传播?

javascript - 用php发送图片?

javascript - 更改span的innerHTML

javascript - 使用 Passport : How to flash a message if a field is missing? 进行 Node.js 身份验证

javascript - 如何通过类名获取多个标签的值?

javascript - 我的代码中的变量似乎没有增加

javascript - 标签上的 Angular.js ng-click 事件触发两次

javascript - Angular:将方法作为参数传递

javascript - 将鼠标悬停在元素 A 上,用淡出动画更改元素 B 的样式?

javascript - 如何更改 JavaScript 中的日期格式?