gpt4 book ai didi

javascript - 用 "{}object"定义变量,意外的 TypeError

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

如果 {}object,例如{}"string"{}[1, 2, 3]{}({}) 完全相等(根据===) 到 object,例如"string", [1, 2, 3], 或者({}),为什么可以用后者定义一个变量而不能前者?

澄清一下:

{}"string" === "string" // true
var a = "string" // No error
var a = {}"string" // SyntaxError: Unexpected string
var a = ({}"string") // SyntaxError: Unexpected string
var a = {}("string") // TypeError: object is not a function
var a = ({}("string")) // TypeError: object is not a function

最佳答案

在这种情况下,{}似乎表现得像一个空 block ,而不是对象文字。所以在语法上把它想成:

// Valid syntax...
// despite confusing whitespace...
for (var i=0;i<5;i++) {}"string" === "string";

但是,那个空 block 不能用在赋值的右边,比如

var a = {}"string"; //SyntaxError

在这里,{}()暗示{}被用作函数,参数在()

var a = {}("string")    // TypeError: object is not a function

关于javascript - 用 "{}object"定义变量,意外的 TypeError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8686230/

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