所以我只是在 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/