JavaScript对象键值对中键名带引号与不带引号的区别及适用场景
JavaScript对象键名加引号的规则与区别
什么时候可以不加引号?
当键名是合法的JavaScript标识符时,完全可以省略引号。合法标识符的要求很简单:
- 首字符只能是字母、下划线
_或美元符号$ - 后续字符可以是字母、数字、下划线或
$ - 不能是JS的保留字(比如
if、function、var这类)
你代码里的id、name、department都符合这个规则,所以写成id: "xxx"和"id": "xxx"效果完全一样,不加引号的写法更简洁。
什么时候必须加引号?
遇到以下几种情况,键名必须用引号(单双引号都行)包裹:
- 键名包含空格或特殊字符:比如
"full name": "张三"、"user-id": "1001" - 键名以数字开头:比如
"123-key": "value" - 键名是JS保留字:比如
"function": "测试函数"
两种写法的核心区别
本质上,对象的键名最终都会被转换为字符串类型(Symbol类型除外)。不加引号的写法只是JS提供的语法糖,让合法标识符的键名写起来更清爽;加引号的写法是通用写法,能覆盖所有键名场景。
顺便纠正你代码里的小问题
你代码里的dummy_String_ID1、full_name_with_Spaces1这些值如果是字符串的话,必须加引号!不然JS会把它们当成变量名,找不到对应变量就会报错。正确写法应该是:
const myArray = [ {id: "dummy_String_ID1", name: "full_name_with_Spaces1", department: "department_withSpaces1"}, {id: "dummy_String_ID2", name: "full_name_with_Spaces2", department: "department_withSpaces2"}, {id: "dummy_String_ID3", name: "full_name_with_Spaces3", department: "department_withSpaces3"} ];
内容的提问来源于stack exchange,提问作者Amritanshu SINGH
相关产品推荐
相关产品推荐

