You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 01:20:21