gpt4 book ai didi

JavaScript 文字键

转载 作者:行者123 更新时间:2023-12-01 11:09:59 25 4
gpt4 key购买 nike

如果只有 JavaScript 字符串和数字可以作为对象文字键,有人可以解释为什么这在控制台中有效吗?

var obj = {null: 0, true: 1, false: -1}
> Object {null: 0, true: 1, false: -1}
obj.null
> 0
obj.true
> 1
obj.false
> -1

最佳答案

您的 key 不是 nulltrue但是"null""true" .

请注意,这不是转化{key:value}符号是另一种写法 {"key":value} . object literal 中的键没有发生转换表示法,当键是有效的 JavaScript 标识符时,引号是可选的(null 就是这种情况)。

这与使用方括号表示法(即 obj[true]=1)时发生的情况截然不同:任何不是字符串的内容都将转换为字符串,以便在这种情况下用作键。

这种区别在这里并不明显,但在其他情况下可能很重要:你会得到一些非常不同的东西

var a = {eval:1}; // no conversion, the key is "eval"

var a = {};
a[eval] = 1; // conversion, the key is eval.toString()

这将是相同的(没有跨浏览器保证)

var a = {"function eval() { [native code] }":1};

同时

var a = {true:1};

相当于

var a = {};
a[true] = 1;

关于JavaScript 文字键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25292899/

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