繁体   English   中英

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

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

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我试了几个,

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 对象中的键的字符超集是什么(单独不是它们的组合,显然,问起来很愚蠢)是什么?

编辑----

我让人们将 JSON 与 JavaScript 对象进行比较并从中得出答案。 我确实了解JSON 密钥名称中哪些字符有效/无效? 有一些很好的见解。

但是要谈到是否允许或不允许在 JSON 和 JavaScript“键”之间进行比较时,纯粹记住是否允许输入这些键nullundefined怎么样?

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

null 作为 JavaScript 对象中的键

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

作品

null 作为 JSON 中的键

{
    null: 10
}

不起作用

1 个回复

任何字符串都可以作为对象键。 规范

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

2 范围属性允许+,-作为提交时的有效字符

我有一个在非必需属性上具有Range属性的模型,并且编辑器允许输入字符串,例如“ 2-1”,“ 1 + 2”等。这导致控制器接收到空值提交表单时填写该字段,而不是我期望的通常的验证消息。 由于null是有效值,因此这会使代码正常工作,但忽略了输入。 当用户看到代码有效但忽略其值时,这似乎引起 ...

3 RegEx / Javascript验证:不允许使用逗号作为有效字符

我正在对我的数字字段进行Javascript验证。 我正在使用RegEx进行此操作-首次使用RegEx用户。 我需要用户仅输入数字和小数,而不输入逗号。 (即3600.00可以,但3,600.00则不能)。 我不知道如何消除逗号作为公认的字符。 任何帮助表示赞赏。 谢谢! ...

4 宏名称的有效字符是什么?

C风格的宏名称是否与标识符具有相同的命名规则? 在编译器升级之后,它现在为遗留应用程序发出此警告: 这行代码定义了&符号的ASCII值常量。 我假设这个定义(实际上没有被任何代码引用,据我所知)是错误的,应该改为像“CHAR_AMPERSAND”这样的东西? ...

8 Java的keytool别名的有效字符是什么?

Java 7的keytool命令的'别名'中有哪些字符有效? 我找到了这个页面 - http://docs.oracle.com/javase/7/docs/technotes/tools/solaris/keytool.html - 但它似乎没有详细解释什么是有效的别名。 ...

2012-12-05 03:47:13 1 3147   keytool
10 注册表项和值名称的有效字符是什么?

更具体地说,该信息的权威来源是什么? 这可能看起来像一个非编程问题,但我需要知道提供给我的代码的注册表路径是否包含正则表达式。 我决定最好的方法是假设任何无效字符的出现(如'*')表示通配符搜索。 ...

暂无
暂无

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

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