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
相关产品推荐
相关产品推荐

