当前位置: 首页 > 后端技术 > Node.js

通过“.”访问js对象属性的区别和“[]”

时间:2023-04-04 01:28:26 Node.js

对象属性的读取和设置有两种方式:(.)方法:obj.attr([])方法:obj[attr]1,(.)点运算符:static。右侧必须是一个以属性名称命名的简单标识符。属性名称由标识符表示。标识符必须直接出现在js程序中,它们不是数据类型,所以程序不能修改。2.([])括号运算符:动态。方括号必须是计算结果为字符串的表达式,并且属性名称由字符串表示。字符串是js数据类型,可以在程序运行时修改和创建。主要有以下区别:[]可以使用变量作为属性名或访问,点方法不可以。[]可以通过变量或字符串访问,但需要双引号。变量对象={};obj.name='张三';varmyName='名字';console.log(obj.myName);//未定义,无法访问对应的属性console.log(obj[myName]);//张三varperson={name:'gogo'};//[]也可以通过字符串访问,但是需要双引号console.log(person["name"]);//gogo//.直接访问字符串console.log(person.name);//gogo[]方括号法--数字可以作为属性名,但不允许点语法;变量对象={};对象[2]=2;//给obj对象加2-->obj{2:2}console.log(obj[2]);//2console.log(obj.2)//意外的数字console.log(obj)//{2:2}[]可以动态访问的属性名,程序运行时可以创建和修改属性,但是点运算符不行!(即[]--可以动态设置和获取)varcustomer={};varaddr=['北京','上海','广州','深圳'];for(i=0;i<4;i++){customer["address"+i]=addr[i];}console.log(addr);//['北京','上海','广州','深圳']console.log(customer);//{address0:'北京',address1:'上海',address2:'广州',address3:'深圳'}varstr="";for(i=0;i<4;i++){str+=customer["address"+i]+"\t";}console.log(str);//北京、上海、广州、深圳,如果属性名中包含导致语法错误的字符,或者属性名是关键字或保留字,也可以使用方括号表示。如:(属性名有空格,请用方括号[])varperson={};person['firstname']='ling';//firstname包含一个空格console.log(person['firstname']);//ling//console.log(person.firstname)//写不能传person['for']='ling_for';person.if='ling_if';console.log(person['for'']);//ling_forconsole.log(person.for);//ling_forconsole.log(person['if']);//gogo_ifconsole.log(person.if);//ling_if