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

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

0

1个回答

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

0
danielinbiti
danielinbiti 回复caozhy: 回答的太好了
8 个月之前 回复
caozhy
weixin_45841714 回复baidu_41020864: 因为数字不能作为变量名,所以不会混淆。 var 1 = 2 这是不合法的,但是字符串的字面值和变量名必须用引号区分。
8 个月之前 回复
baidu_41020864
小萌新小奶狗 那么大佬为什么数字类型用中括号取不用加双引号呢, 感谢大佬
8 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
javaScript访问对象属性应该用点号还是中括号?
JavaScript中有两种方式来访问对象的属性,点操作符或者中括号操作符。 两种语法是等价的,但是中括号操作符在下面两种情况下依然有效 - 动态设置属性 - 属性名不是一个有效的变量名。 点号后加标识符(静态的); 中括号放字符串,字符串可以是动态的,obj['string'+variable]; 如果是静态的还是用点号方便;
关于js获取对象 使用点和使用中括号的区别
1、中括号法可以用变量作为属性名,而点方法不可以;2、中括号法可以用数字作为属性名,而点语法不可以;3、中括号法可以使用js的关键字和保留字作为属性名,而点语法不可以(尽量避免在变量或者属性中使用关键字或保留字);...
JS声明对象时属性名加引号与不加引号的区别
原文地址:http://www.qttc.net/201306336.html 这个问题很好有人关注,但我每一次在声明一个对象属性的时候都要想想要不要给属性加引号?加引号与不加引号有什么区别? 其实在JavaScript中,加引号与不加引号都是一样用,都是有效的。如: var obj = { name : '琼台博客', 'age' :
对象属性名不加引号与加引号的区别
js 变量的命名规则  标识符只能由字母、数字、下划线和‘$’组成  数字不可以作为标识符的首字符(纯数字除外:js会自动将数字转化为字符串类型)   JSON 语法: 是 JavaScript 对象表示法语法的子集 1、非数字型键值必须双引号 2、json 值 :  数字(整数或浮点数) 字符串(在双引号中)  逻辑值(true 或 false)
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中函数调用,加括号和不加括号,加引号和不加引号的区别
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
js 对象中的中括号与点在调用对象属性时的区别
一、调用属性 一般来说一个对象的属性的调用都是用一个 . 来调用,就像下面这个例子一样 var obj={ test:'wtf' } console.log(obj.test) 输出了wtf 但js还有另一个操作符调用对象的属性就是[ ],例子如下 var obj={ test:'wtf' } var index='test' console.log(obj[ind
js对象中属性名加引号和不加引号的区别
#一般情况下属性名加引号和不加引号是都可以的,效果是一样的,比如下面age属性加不加引号都可以访问到的: #但是,不符合规范的属性名必须要加引号 1.比如以数字打头的属性名: var obj = { name: 'wozien', 53age: 16 }在chrome中会报错: 2.数字开头的属性必须用obj[ ]方括号进行访问,如下: var obj = { na
el表达式在js中有时需要加引号才可以用,何时需要加引号,何时不需要加引号
本以为js是弱语言,对语言的要求不高,但是今天遇见一个坑,在js代码中编写el表达式,却一直没反应,代码如下 $(function(){ var msg = ${msg}; if(msg!=null && msg != ''){ alert(msg); } }); 在此代码中,接收服务器返回的msg信息,用el表达式取值,却一直没有反应,应该在el表达式两边加引号,如下:
js对象属性 通过点(.) 和 方括号([]) 的不同之处
【JS对象属性的查询和设置】 可以通过点(.) 或 方括号([]) 运算符来获取属性的值。运算符左侧应当是一个表达式,它返回一个对象。对于点(.)来说,右侧必须是一个以属性名称命名的简单标识符。对于方括号([])来说,方括号里必须是一个计算结果为字符串的表达式,这个字符串就是属性的名字:   var author = book.author; //得到book的"author"属性  
访问对象属性的点表示法和方括号表示法的区别
var person = { name:'gogo' }一般来说,访问对象属性时都使用点表示法,这也是很多面向对象语言中通用的语法。不过在javascript中,也可以使用方括号表示法来访问对象的属性。在使用方括号语法时,应该把属性以字符串的形式放在方括号中,如:alert(person["name"]); //gogo alert(person.nam
在JavaScript中输入的参数什么时候带引号,什么时候不带引号,有什么区别?
在JavaScript中输入的参数什么时候带引号,什么时候不带引号,有什么区别?
javascript使用方括号([])引用对象的属性和方法
在JavaScript中,每个对象可以看作是多个属性(方法)的集合,引用一个属性(方法) 很简单,即: 对象名.属性(方法)名 除此之外,还可以用方括号的形式来引用: 对象名["属性(方法)名"] 注意,这里的方法名和属性名是一个字符串,而非原先点号后面的标识符,例如: var arr=new Array(); //为数组添加一个元素 arr["push"]("Leepy");
js中中括号,大括号使用详解
js中中括号,大括号使用详解
js操作对象中点操作和中括号操作的区别
我们都知道,取js对象的时候可以用.也可以用[]。但是区别之前不是很清楚,今天在网上搜罗了,现总结如下: 中括号运算符总是能代替点运算符。但点运算符却不一定能全部代替中括号运算符。 中括号运算符可以用字符串变量的内容作为属性名。点运算符不能。 中括号运算符可以用纯数字为属性名。点运算符不能。 中括号运算符可以用js的关键字和保留字作为属性名。点运算符不能。 可
js对象字面量属性名加不加引号的问题
1.js对象  js 对象的属性名可以不用引号括起,这是 js 语法约定的 属性名可以是包括空字符集在内的任何字符串  如果属性名是一个合法的标识符,而且不是保留字,则不强制用引号括住属性名。否则必须使用且只能以obj[&quot;属性名称&quot;]形式访问  逗号分隔多个名值对 var myObj = { age : 19, 'last-name':'wang', firstNa...
获取对象属性的点方法和中括号法的区别
今天写题的时候遇到用点取不到对象这个问题, 题目大致是这个样子 console.log($element);//{BranchId: "0003", CHName: "哈哈哈", ShortName: "嘻嘻嘻"} console.log(CacheData.columns[0])//BranchId; console.log(CacheData.columns[1]
JavaScript:将key名不带双引号的JSON字符串转换成JSON对象的方法
根据json.org上面的描述,JSON对象是由对象成员组成,而成员是由key-value键值组成。key值是一个字符串: 字符串由Unicode字符组成,用双引号包围,用反斜杠转义。可以是单个字符。用法跟C或Java里的字符串的用法相似。 但是,在现实应用中,很少有程序员知道JSON里的key需要用双引号包围,因为大多数的浏览器里并不需要使用双引号。所以,为什么多此一举要多写两个双引
javascript中{},[]中括号,大括号的含义和使用
一、{ } 大括号,表示定义一个对象,大部分情况下要有成对的属性和值,或是函数。 如:var LangShen = {"Name":"Langshen","AGE":"28"};  上面声明了一个名为“LangShen”的对象,多个属性或函数用,(逗号)隔开,因为是对象的属性,  所以访问时,应该用.(点)来层层访问:LangShen.Name、LangShen.AGE,当然我们也可以用数组的
PHP数组键值使用单引号和双引号和无符号的区别
第一种:$array['key']此单引号键值模式可以直接被解析为一个数组即$array 第二种:$array["key"]此双引号键值模式,先执行的是"key",判断是否有定义的PHP变量存在,在解析为数组即$array 第三种:$array[key]此为无单双引号键值模式,会先分析局部作用于是否有key键值定义的常量存在,即使用define('key','val'),然后解析数组即$arr
vue v-bind:class中属性使用引号
v-bind:class属性使用引号
一个简单的例子解释obj中key用不用引号的问题
var obj = { a : ' a ', 'b' : ' b ', c : function(){console.log(' c ')}, 'd' : function(){console.log(' d ')}, e : function(x){console.log(' e ' + x)}, 'f' : function(x){console
bash编程中,变量“用双引号”和“不用双引号”的区别
变量用双引号括起来的意义 推荐今后编程中变量必须用双引号括起来同事遇到一个bash编程上的bug,一时没有解决方法。 后经百度,虽然找不到问题直接原因的出处;但是在知乎上看到了有人做出了合理的解释。shell编程中用双引号引用参数和不用双引号有什么区别? - 知乎 https://www.zhihu.com/question/33466555变量用双引号括起来的意义如果变量不用双引号括起来,比如
关于json之中括号和点号的取(赋)值的区别
看下面这个例子: function set() { var outer = {}; //outer.a = 10; outer[b] = 20; var apps = ["key1", "key2"]; for(var i=0; i<
angularjs里 什么时候加{{}} 什么时候不用?
如图,带ng的angular的指令就不需要中括号,原生的属性如value就需要了
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...
C++中new 一个对象的时候加括号和不加括号的区别
先把结论放上来:  加括号调用没有参数的构造函数,不加括号调用默认构造函数或唯一的构造函数,看需求 C++在new时的初始化的规律可能为:对于有构造函数的类,不论有没有括号,都用构造函数进行初始化;如果没有构造函数,则不加括号的new只分配内存空间,不进行内存的初始化,而加了括号的new会在分配内存的同时初始化为0。   以下代码: #include
直接将EL表达式的值赋给var对象时,该EL表达式一定要加上双引号
直接将EL表达式的值赋给var对象时,该EL表达式一定要加上双引号。否则浏览器在解析时,会报错:var对象直接等于一个空白 同样,在JS代码中使用EL表达式也要加上引号 //获取区县列表 function selectDistrict1() { var mercity =&quot;${merchant.mercity}&quot;; var city_code = $(&quot;#mercity&quot;)....
for in 遍历对象时取值为什么只能用[]不能用点
var obj = { name:'12', age:123, sex:'male' } for( var prop in obj){ console.log(obj.prop) } 当我用obj.prop取值的时候,最后发现全是undefined 然后我们在obj里面加一个...
js代码中 何时加入引号,何时不加
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>函数传参</title> </head> <style type="text/css"> #div1{ width: 200px; height: 200px
字典作为作为函数不定长参数时候字典的key值不用加引号
参考博客 https://blog.csdn.net/festony/article/details/8247951 def myclass(classname,*classcharacter,**classmate):     sumage = 0     print('班级名称:',classname)     print('班级特色:',*classcharacter)        pr...
Linux_Bash脚本_单引号’双引号“”反引号`小括号()中括号[]大括号{}
一、单引号和双引号 首先,单引号和双引号,都是为了解决中间有空格的问题。 因为空格在linux中时作为一个很典型的分隔符,比如string1=this is astring,这样执行就会报错。为了避免这个问题,因此就产生了单引号和双引号。他们的区别在于,单引号将剥夺其中的所有字符的特殊含义,而双引号中的'$'(参数替换)和'`'(命令替换)是例外。所以,两者基本上没有什么区别,除非在内容中遇到
JavaScript对象取值方式分析
定义一个对象 var a={key1:"a",key2:"b"}; 取值方式一 var value1=a['key1']; 取值方式二 var value2=a.key1; 分析: 两种取值方式在语法上都没有问题,但是第二种取值方式在性能上优于第一种方式; 但是第二种方式无法应用于动态取值问题,动态取值的时候需要用第一种方式。 var value3="key2"; var
shell 判断变量是否为空,变量加不加双引号的区别
对于 if 条件语句里所有的字符串的比较时,最好是在变量的外面加上双引号。特别是 if -n 判断字符串是否为null时候(null意思就是字符串长度为0),一定要加上双引号。
Python 类变量(类名不加括号访问的变量)
起因: 下面一段代码没有达到预期 # config.py class GlobalVar(): is_init = False def set_init_status(is_init): GlobalVar().is_init = is_init def get_init_status(): return GlobalVar().is_init if ...
js方括号在属性上的好处
var person = { &quot;name&quot;:&quot;nick&quot;, } alert(person.name); //这里就可以直接弹出nick 但是如果这时的属性是这样的?! var person = { &quot;first name&quot;:&quot;nick&quot;, &quot;last name&quot;:&quot;yang&quot;, } alert(person.first name) //很明显这里错的 这里应该这样做 ale
js中中括号和点的区别
在js中如果要获取某个Object中的内容, 可以用点(.)或者中括号([]). 但是这两者是有区别的. 点后面加的是静态的标识符, 而中括号中同时也可以加动态的字符串. 如果需要动态的获取值可以用中括号: var obj={ say1:1, say2:2, say3:3 } for(let i=1; i&amp;lt;Obj...
记录,javascript中对象的属性名是字符串,却可以不用引号
问题描述:今日看书,里面介绍js的对象的属性名是包括空字符串在内的所以字符串 问题来了,我们平时定义的对象如下,是没有引号""or''的 var someone  = {     first_name : "Jeo",     second_name : "Mike" }; 所以我写了以下程序测试, var stooge = {     "first_name" : "Jeo",
shell中单引号,双引号,反引号,不用引号的使用区别
 shell定义字符串变量时字符串可以用单引号,也可以用双引号,也可以不用引号,如果无特殊情况话,三者效果一样 1.单引号和双引号的区别   str=yalong  echo &quot;The str is $str&quot; &amp;gt;&amp;gt;  The str is yalong #双引号中的$str被其值yalong替换,即双引号允许变量替换。  echo 'The str is $str'  &amp;gt;&amp;gt...
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 游戏开发物语培训不加 为什么学python