javascript获取属性的两种方法及区别
程序员文章站
2022-03-14 10:34:43
javascript获取属性有两种方式,点或者中括号: 当你用第一种方式的时候,属性必须是一个合法的变量名,如果属性名字是 2 或者 “john smith”就行不通了,这时你只能用中括号 obj[2]或者obj["john smith"].所以你会联想的数组,有人说javascript里面甚至没有 ......
javascript获取属性有两种方式,点或者中括号:
var obj={} obj.x=1 console.log(obj.x)//1 第一种方式,x是字面量 try{ console.log(obj[x])//referenceerror: x is not defined 相当于调用obj."undefined" }catch(e){ console.log("err:"+e) } x="str" console.log(obj[x]) x="x" console.log(obj[x])//x是一个变量,先计算出值并转换为字符串,在获取相应的属性名
当你用第一种方式的时候,属性必须是一个合法的变量名,如果属性名字是 2 或者 “john smith”就行不通了,这时你只能用中括号 obj[2]或者obj["john smith"].所以你会联想的数组,有人说javascript里面甚至没有数组,只有属性,因为你可以这样定义:
arr=[] arr[0]=1 arr[2]=2
中间跳过了arr[1],如果你要取arr[1]也可以,只是会得到undefined
为什么不像
console.log(obj[x])//referenceerror: x is not defined 相当于调用obj."undefined"
这样抛异常呢,因为1不是undefined,是字面量
中括号还有个好处,就是属性的名字可以动态的计算,比如用循环语句去遍历一个对象的属性
推荐阅读
-
Javascript 创建类并动态添加属性及方法的简单实现
-
jQuery获取选中内容及设置元素属性的方法教程
-
用JavaScript获取伪元素(Pseudo-Element)属性的方法详解
-
PHP静态方法和静态属性及常量属性的区别与介绍
-
PHP静态方法和静态属性及常量属性的区别与介绍
-
ABP框架中导航菜单的使用及JavaScript API获取菜单的方法
-
Android SdkVersion的区别及获取版本信息方法
-
ABP框架中导航菜单的使用及JavaScript API获取菜单的方法
-
Android SdkVersion的区别及获取版本信息方法
-
jQuery获取选中内容及设置元素属性的方法教程