浅谈js的对象

  JavaScript中所有变量都可以当作对象使用,除了两个例外null和undefined。今天这里说的对象就特指object类型,也就是其他语言里面的字典dict,接下来讲一下js中对象的定义和使用。
对象赋值:
1)定义并初始化

a = { x : 1 }  <--> a = { "x" : 1 }   <-->  a = {} a["x"] = 1  <-->   a = {} a.x = 1

  注意: 定义过程中初始化,key直接是字符串,就算你传的是个变量名,还是会认为是字符串。
eg :

t = 1
a = {t : 3} <--> a = ["t" = 3]  // 这里a["t"]值为3,  a[1] 不存在,为undefined 

  注意:这里的key如果没有用”“包起来的话,必须为合法字符串
eg :

a = { x : 1 }
b = { a.x : 2 }   // 报错,SyntaxError: Unexpected token .,字符串时不合法,含有 .
b = { a["x"] : 2 } // 报错,SyntaxError: Unexpected token [,字符串时不合法,含有[]

  这里错的原因主要是,定义初始化过程中key直接当作是字符串,而这里的字符是不合法的

  如果key有特殊字符,这时可以用 “”包起来的话
eg:

b = { "a.x" : 2 }   // key 为 a.x

2)先定义后赋值
  如果key要传变量时,可以在后期赋值的时候传(用[],不用. 用.的话,直接当作字符串)
用 [] 赋值:
eg:

a = {}
x = 1
a[x] = 4  // 这时 a[1] = 4
a[y]  // 出错,y未定义
a["z"] = 5  // a["z"]值为5

用 . 赋值:
eg:

a.x = 4 <--> a["x"] = 4  // 注意这里和 a[x] = 4 的不同

读取对象值
用 [] 获取:
eg:

a = {x = 1}
t = "x"
console.log( a["x"] ) // 输出结果 1
console.log( a[t] )  // 输出结果 1
console.log( a[x] )  // 报错,ReferenceError: x is not defined

用 .  获取:
  获取的时候,key为数字的时候,用[], 不能直接用 .
eg:

a = {1 : 10}
console.log( a.1 ) // 报错,Unexpected number
console.log( a[1] ) // 输出结果 10

小结:</font>
  1.初始化时,key直接当作字符串
  2.后期赋值的时候,用[]时key当作正常变量读取, 用.时key直接当作字符串
  3.获取对象值得时候,注意key为数字的时候,不要用.要用[]

用处:
  有些语言(例如lua)支持在初始化的时候,直接用变量当作key,而js不行。例如之前有个功能用lua实现,后面要改成js实现,但是js在对象初始化的时候就有上面的不同。
  上面这些我觉得没必要死记硬背,毕竟只是语言的特性,不过我们得知道其中的不同,具体细节可以通过笔记来巩固。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值