"123" {} 123 -> 123 {} [] ->-6ren">
gpt4 book ai didi

javascript - 为什么 { }"123"是 Javascript REPL 中的有效表达式?

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:12:02 24 4
gpt4 key购买 nike

我在 Chrome(和 FF)控制台中尝试了一些东西,并意识到 JS REPL 以一种令人惊讶的方式评估了一些表达式:

{} "123" 
-> "123"


{} 123
-> 123

{} []
-> []

等等

这是为什么呢?此外,与之前的行为有些不一致:

{}{} 
-> undefined

这些是有效表达式这一事实背后的逻辑是什么?

最佳答案

  1. 分号在 Javascript 中是可选的。所以:

{} "123"{}相同; "123"; 生成最后一个表达式的值 ("123")。

  1. {} 可以是对象文字或 block 。

如果 {} 未被隐式视为对象文字(无赋值或无键值对...),则解释器会将其解析为 block 。

{}{} 等同于:

{
// block with no expressions
};
{
// block with no expressions
};

产生undefined,这是一个空 block 的值。

关于javascript - 为什么 { }"123"是 Javascript REPL 中的有效表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43458906/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com