比如:
var a = {};
有时候要用:
a.b = 1;
c = a.b;
alert(c);
可是有时候却要用:
a[b] = 1;
c = a[b];
alert(c);
这两种写法有什么区别吗
那为什么有时候只有前者能用或是后者能用?
一、功能不同
1、用点:表示定义一个对象,大部分情况下要有成对的属性和值,或是函数。
2、用中括号:表示一个数组,也可以理解为一个数组对象。
二、语法不同
1、用点: var LangShen = {"Name":"Langshen","AGE":"28"}。langShen.Name。在JSON数据结构、写函数组的时候中经常用。
2、用中括号:var LangShen = [ "Name","LangShen","AGE","28" ];每个值或函数,都是独立的,多个值之间只用,(逗号)隔开,因为是数组对象。
三、访问方式不同
1、用点:对象,访问时,用.(点)来层层访问。
2、用中括号:访问时,也是和数组一样,alert( LangShen[0] );
参考资料来源:百度百科-javascript
中括号运算符总是能代替点运算符。但点运算符却不一定能全部代替中括号运算符。
中括号运算符可以用字符串变量的内容作为属性名。点运算符不能。
中括号运算符可以用纯数字为属性名。点运算符不能。
中括号运算符可以用js的关键字和保留字作为属性名。点运算符不能。
ps:点号后加标识符(静态的)
中括号放字符串,字符串可以是动态的,obj['string'+variable]
如果是静态的还是用点号方便
那为什么有时候,用点才能取到值,有时候却要用中括号呢?
追答不考虑[]用作数组或集合下标使用的情况,单针对某个对象,这两种写法本质是一样的。
你能举个例子, 只能用点或只能用中括号取属性值吗?
js操作对象属性用点和用中括号有什么不同?
一、功能不同 1、用点:表示定义一个对象,大部分情况下要有成对的属性和值,或是函数。2、用中括号:表示一个数组,也可以理解为一个数组对象。二、语法不同 1、用点: var LangShen = {"Name":"Langshen","AGE":"28"}。langShen.Name。在JSON数据结构、写函数组的时候中经常用。2、用...
js判断题obj.name和obj["name']访问到的是不是同 个属性?
若name代表具体的属性,则两者访问到的是同一个属性,但是若name为变量,则不同属性。JavaScript中点“.”与中括号“[]”的主要区别。(1).与[]均可以用于获取对象属性,但是写法存差异。.后面直接跟属性,[]中的属性需要以字符串的形式传入。设置obj的宽度为300px。.的书写方式:obj.style.width='3...
JS对象object
使用中括号语法和点语法访问属性。点语法可能误导你认为属性名不是字符串,建议优先使用中括号语法。通过直接赋值、Object.assign或修改原型来写属性。修改隐藏属性推荐使用Object.create而非__proto__。删除属性用delete关键字,如delete obj['name']。查看属性可用Object.keys或console.dir,或通过中括号语...
菜鸟求助js控制台打印出来的对象的属性有两个中括号包含
当使用JavaScript控制台打印对象时,有时会看到对象的属性中包含两个中括号,这并非对象内部真正的属性,而是Chrome开发者工具为了方便开发者调试所显示的标识。例如在函数对象展开时,可能会看到一个名为[[scope]]的属性,这个标识是为了帮助开发者查看当前函数的作用域链,提供更直观的调试信息。这种中括号...
在js中用中括号访问对象的时候属性为什么要加上双引号?
不加双引号的话,js会认为这是变量名,而这个变量是不存在的,所以报“not defined”(未定义)的错误。而这其实就是用中括号来访问对象属性的意义所在:可以用变量来代替属性名,比如:var n = "name1";console.log(obj[n]); \/\/obj[n]就相当于obj["name1"]或obj.name1 而用点语法的话...
JS 对象基本用法
要读取或修改对象的属性,可以使用点符号`.`或方括号`[]`,例如`myObj.property`或`myObj['property']`。如果属性不存在,`[]`方式更为灵活,可以接受字符串或表达式作为键。新增属性时,直接赋值即可。共有的属性是对象和其原型共享的,而修改原型属性(如`Object.prototype`)需要特别注意,通常...
js中的json对象的属性怎么取值
需要准备的材料分别有:电脑、html编辑器、浏览器。1、首先,打开html编辑器,新建html文件,例如:index.html。2、在index.html中的标签,输入js代码:var json = {'name': 'Alice', 'age': 16};document.body.innerText = json.name;。3、浏览器运行index.html页面,此时json的对象的name属性被...
请问js对象属性值为什么用数组也可以访问
两个都是获取对象值的方式。第二个用变量名获取对象值的时候很有用。var obj = { name:'lily', year:'20'}alert(obj.year);var y = 'year';\/\/ 用变量获取alert(obj[y]);
js中向对象中添加属性的两种方法?
视频讲解的是javascript面向对象编程语言中的关于创建对象的知识,重点讲解的是如何创建对象及添加属性,由于属于动态语言,所以我们可以随时的为对象添加属性。
js中向对象中添加属性的两种方法?
1.3 内部属性一些属性只是用于规范,这些属于“内部”的属性,因为它们不能直接访问,但是它们确实影响对象的行为。内部属性有特殊的名称都写在两个方括号,如:内部属性[[Prototype]]指向对象的原型。它可以通过Object.getPrototypeOf()读取。它的值只能通过创建具有给定原型的新对象来设置,例如通过object....