gpt4 book ai didi

javascript - 为什么 Object.toString 会抛出 SyntaxError 而 Array.slice 不会?

转载 作者:行者123 更新时间:2023-11-30 08:08:25 25 4
gpt4 key购买 nike

为什么在控制台输入这个:

{}.toString
{}.hasOwnProperty
{}....

抛出一个 SyntaxError,然后输入:

[].slice
[].filter
({}).toString
({}.toString)

不是吗?

数组和对象有什么区别?

最佳答案

问题是 { 符号的歧义。试试这个:

({}.toString())

当解析器在新语句的最开头看到 {} 时,它必须在

  • 这是对象字面量吗?
  • 这是语句 block 吗?

它总是选择第二个,一个语句 block 。因此,{} 是一个空语句 block ,紧随其后的 .toString() 没有任何意义。

[] 没有歧义 — 语句开头的 [ 只能是数组文字的开头(作为表达式语句的一部分)。然而,function 关键字也存在类似的问题,它作为函数声明语句的开始和函数实例化表达式的开始具有双重职责。

关于javascript - 为什么 Object.toString 会抛出 SyntaxError 而 Array.slice 不会?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14144021/

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