繁体   English   中英

javascript object 中允许作为“键”的有效字符/值是什么? [复制]

[英]What are the valid characters/values allowed as “keys” in javascript object? [duplicate]

我试了几个,

const obj = {
    '`' : 1,
    '@' : 2,
    '^' : 3,
    '-' : 4,
    '?' : 5,
    ']' : 6,
    '*' : 8,
    ')' : 9,
    '/' : 10,
    '>' : 11,
    'ル': 12
}

console.log(obj); //{ '`': 1, '@': 2, '^': 3,'-': 4, '?': 5, ']': 6, '*': 8, ')': 9, '/': 10, '>': 11, 'ル': 12}

所以我的问题是,可以作为 JavaScript object 中的键的字符超集是什么?

已编辑----

我有人将 JSON 与 JavaScript 对象进行比较并从中得出答案。 我明白JSON 键名中哪些字符有效/无效? 有一些很好的见解。

但是要触及 JSON 和 JavaScript “键”之间的比较是否允许或不允许一些事情,纯粹记住这些键是否允许输入, Z37A62596 undefined60C1DAE299A78怎么样?

我没有讨论它们是如何在内部被强制并作为键插入的,或者在使用方括号[ ]表示法检索值时会发生什么强制。 纯粹基于是否允许您输入该值,是的,JSON 中允许的键与 JavaScript object 中允许的键之间存在差异

null 作为 JavaScript object 中的键

let x = {null: 10};
for(let key in x){
    console.log(key); //null
    console.log(typeof key); //string
}

作品

null 作为 JSON 中的键

{
    null: 10
}

不工作

任何字符串都可以作为 object 键。 规格

属性使用键值标识。 属性键值是 ECMAScript 字符串值或符号值。 所有字符串和符号值,包括空字符串,都可以作为属性键有效。 属性名称是一个属性键,它是一个字符串值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM