2 baidu 41020864 baidu_41020864 于 2018.10.11 21:49 提问

javascript对象用中括号取值不加双引号为什么会去访问变量

var a = 'b';
var obj = {
a: 123
}
obj[a] == obj['b']
我向了解更深点,为什么中括号不加双引号会去访问变量去

1个回答

caozhy
caozhy   Ds   Rxr 2018.10.12 00:20

几乎所有的编程语言,没有引号的合法标识符都表示一个变量。
这个变量单独写出来代表一个最基本的表达式,表达式的值就是变量代表的值。
因此 obj[a] 就是 obj[a的值],而a的值就是 'b',用引号包围的字符,就是字符串,它不表示变量,而是表示字面的值。
这个别说js,任何语言都是最基本的概念。

danielinbiti
danielinbiti 回复caozhy: 回答的太好了
4 天之前 回复
caozhy
caozhy 回复baidu_41020864: 因为数字不能作为变量名,所以不会混淆。 var 1 = 2 这是不合法的,但是字符串的字面值和变量名必须用引号区分。
4 天之前 回复
baidu_41020864
baidu_41020864 那么大佬为什么数字类型用中括号取不用加双引号呢, 感谢大佬
4 天之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
js 对象属性名不加引号与加引号的区别
js 变量的命名规则  标识符只能由字母、数字、下划线和‘$’组成  数字不可以作为标识符的首字符(纯数字除外:js会自动将数字转化为字符串类型)   JSON 语法: 是 JavaScript 对象表示法语法的子集 1、非数字型键值必须双引号 2、json 值 :  数字(整数或浮点数) 字符串(在双引号中)  逻辑值(true 或 false)
JavaScript中,对象需不需要加引号?
一般情况一般情况下,加不加引号是一样的.var obj = { name: 'win_turn', 'age': 23, }; document.write('name: ' + obj['name'] + '<br />'); document.write('age: ' + obj.age + '<br />');执行结果是: name: win_turn age: 2
javaScript访问对象属性应该用点号还是中括号?
JavaScript中有两种方式来访问对象的属性,点操作符或者中括号操作符。 两种语法是等价的,但是中括号操作符在下面两种情况下依然有效 - 动态设置属性 - 属性名不是一个有效的变量名。 点号后加标识符(静态的); 中括号放字符串,字符串可以是动态的,obj['string'+variable]; 如果是静态的还是用点号方便;
JS声明对象时属性名加引号与不加引号的区别
原文地址:http://www.qttc.net/201306336.html 这个问题很好有人关注,但我每一次在声明一个对象属性的时候都要想想要不要给属性加引号?加引号与不加引号有什么区别? 其实在JavaScript中,加引号与不加引号都是一样用,都是有效的。如: var obj = { name : '琼台博客', 'age' :
关于js获取对象 使用点和使用中括号的区别
1、中括号法可以用变量作为属性名,而点方法不可以;2、中括号法可以用数字作为属性名,而点语法不可以;3、中括号法可以使用js的关键字和保留字作为属性名,而点语法不可以(尽量避免在变量或者属性中使用关键字或保留字);...
js对象属性 通过点(.) 和 方括号([]) 的不同之处
例:<script type="text/javascript"> var author = book.author; //得到book的"author"属性 var name = author.subname; //得到author的"surname"属性 var title = book["main title"]; //得到book的"main title"属性 </script>
js对象属性 通过点(.) 和 方括号([]) 的不同之处
【JS对象属性的查询和设置】 可以通过点(.) 或 方括号([]) 运算符来获取属性的值。运算符左侧应当是一个表达式,它返回一个对象。对于点(.)来说,右侧必须是一个以属性名称命名的简单标识符。对于方括号([])来说,方括号里必须是一个计算结果为字符串的表达式,这个字符串就是属性的名字:   var author = book.author; //得到book的"author"属性  
JavaScript 1.3 对象补充:JS声明对象时属性名加引号与不加引号的区别(转)
JavaScript 1.3 对象补充:JS声明对象时属性名加引号与不加引号的区别(转)   这个问题很好有人关注,但我每一次在声明一个对象属性的时候都要想想要不要给属性加引号?加引号与不加引号有什么区别? 1其实在JavaScript中,加引号与不加引号都是一样用,都是有效的。如:   var obj = {     name        : '琼台博客',
JavaScript 使用变量访问对象属性
  var testObj = { 12: &quot;Namath&quot;, 16: &quot;Montana&quot;, 19: &quot;Unitas&quot; }; // Only change code below this line; var playerNumber=16; // Change this Line var player =testObj[playerNumber]; // Change this Lin...
js中函数调用,加括号和不加括号,加引号和不加引号的区别
关于js中函数调用,加括号和不加括号,加引号和不加引号的区别