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

Node.js中对象键名是否需要添加引号?新手技术问询

JavaScript对象键名引号的使用规则

嘿,作为JS新手有这个疑问太正常了!我来给你把对象键名加不加引号的规则讲得明明白白:

一、可以不加引号的情况

当你的对象键名是合法的JavaScript标识符时,完全可以省略引号,两种写法(加/不加)都是有效的,而且功能完全一致。

合法标识符的要求是:

  • 以字母、下划线_或者美元符号$开头
  • 后续可以是字母、数字、下划线_或者美元符号$
  • 不能是JavaScript的保留关键字(比如var、function、class这些)

像你例子里的name、age都符合这个要求,所以:

var list = { name : 'robert', age : 21 };

和

var list = { "name" : 'robert', "age" : 21 };

这两种写法没有任何区别,都是正确的。

二、必须加引号的情况

遇到以下几种场景,键名必须用引号(单引号或双引号都可以)包裹,否则会触发语法错误:

  • 键名包含特殊字符:比如空格、连字符-、@、#等非标识符允许的字符,例如:

    // 正确写法
    var user = { "user-name": "robert", "email@example": "robert@test.com" };
    // 错误写法(会报错)
    var user = { user-name: "robert", email@example: "robert@test.com" };
    
  • 键名是JavaScript保留关键字:比如class、function、var这些,直接作为键名不加引号会报错:

    // 正确写法
    var config = { "class": "frontend", "function": "login" };
    // 错误写法(会报错)
    var config = { class: "frontend", function: "login" };
    
  • 键名以数字开头:比如123abc这种,直接写会触发语法错误,必须加引号:

    // 正确写法
    var data = { "123abc": "test value" };
    // 错误写法(会报错)
    var data = { 123abc: "test value" };
    

三、风格建议

如果键名是合法标识符,不加引号的写法更简洁,也是社区里最常用的风格;如果团队有统一要求(比如所有键名都加引号),那按团队规范来就行。但遇到上述“必须加引号”的场景,一定要记得加引号哦!

内容的提问来源于stack exchange,提问作者Richard

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 07:42:56