javascript获取属性的两种方法及区别
2024-09-01 18:22:14
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,是字面量
中括号还有个好处,就是属性的名字可以动态的计算,比如用循环语句去遍历一个对象的属性
最新文章
- 彻底解决“从客户端中检测到有潜在危险的Request.Form值”
- mount --bind 重启后失效的解决办法
- Java设计模式-状态模式(State)
- Fiddler-001-抓包工具初识
- tcp socket
- UIKit,Core Data , Core Graphics, Core Animation,和OpenGLES框架
- C# 获取汉字的拼音首字母
- atomic_compare_exchange
- 201521123053《Java设计与程序》第六周学习总结
- ES6-模块化
- 判断mine类型
- 阿里云API网关(18)请求报文和响应报文
- WebApiClient与Asp.net core DI的结合
- UI Automator 常用 API 整理
- ShellExecute, WinExec与CreateProcess
- sdk manager更改国内镜像
- python day10 函数(第二篇)
- 1; XHTML 基本知识
- 【2017-03-23】CSS基础:内联样式
- 如何为Android上的产品设计一款合适的图标