javascript - 为什么这个 JS 语法有效(额外的大括号)?

标签 javascript

所以我只是在 JS 控制台中错误地输入了一些东西,并且很惊讶它没有给我一个语法错误。我的问题:为什么这是有效的?

function foo(){
    {
        console.log('Valid Function');
    }
}
foo();

我假设它将内部 { ... } 解释为对象文字,但如果是这种情况,console.log 将无效...所以。 ..?

最佳答案

这是一个匿名代码块。例如:

{var x=5; alert(x);}

进一步澄清您的问题“成为一个对象字面量,但如果是这种情况,console.log 将无效......所以......?”

它不是一个对象。但是,请注意,如果您有一个 key: 或其他东西,它可以被解释为一个对象并且仍然有效,因为不返回任何内容的语句将被解释为 未定义

({1:console.log('test')})

结果(也打印出'test'):

Object
1: undefined
__proto__: Object

关于javascript - 为什么这个 JS 语法有效(额外的大括号)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6147357/

相关文章:

javascript - 用 laravel-mix 编译的 ES6 库不起作用

javascript - Aurelia 绑定(bind)在样式复选框上

javascript - 如何从两个不同的 fs 方法创建对象?

javascript - Mixpanel 数据采样/事件采样

javascript - 在 WKWebView 中注入(inject) javascript 以获取单击图像的 src 属性

javascript - 在 highcharts 中,是否可以在柱形图中制作一个条形图,其顶部与图表边框的图表区域 "on top"的边缘接壤?

php - 从 php、javascript 中的 url(网页)解析特定内容

javascript - 如何创建可扩展的 Angular 应用程序结构?

javascript - 对 Jira 进行 REST 调用时为 "request sent by the client was syntactically incorrect"

Javascript static/singelton - this vs _this vs 对象名称