“为什么{}”;123“;Javascript REPL中的表达式是否有效?
我在Chrome(和FF)控制台中尝试了一些东西,发现JS REPL以一种令人惊讶的方式计算了一些表达式:“为什么{}”;123“;Javascript REPL中的表达式是否有效?,javascript,Javascript,我在Chrome(和FF)控制台中尝试了一些东西,发现JS REPL以一种令人惊讶的方式计算了一些表达式: {} "123" -> "123" {} 123 -> 123 {} [] -> [] 等等 为什么呢?另外,与之前的行为有些不一致: {}{} -> undefined 这些都是有效表达式这一事实背后的逻辑是什么 分号在Javascript中是可选的。因此: {}“123”与{}相同;"123";生成最后一个表达式的值(“123”) {}既可以是
{} "123"
-> "123"
{} 123
-> 123
{} []
-> []
等等
为什么呢?另外,与之前的行为有些不一致:
{}{}
-> undefined
这些都是有效表达式这一事实背后的逻辑是什么
{}“123”
与{}相同;"123";
生成最后一个表达式的值(“123”
)
{}
既可以是对象文字,也可以是块{}
未隐式地作为对象文本(无赋值或无键值对…),则解释器将其作为块进行解析
{}{}
与以下内容相同:
{
// block with no expressions
};
{
// block with no expressions
};
产生未定义的
,它是空块的值