JavaScript对象属性访问器

JavaScript的对象属性访问器提供了点号和方括号两种方法用于访问一个对象的属性。

点号访问器

Object.property

在点号访问器的语法中, property必须是一个有效的JavaScript标识符。例如,一串字母数字字符,也包括下划线及美元符号,但不能以数字作为开头。比如,object.&0是合法的,而object.0却是无效不合法的。

document.creatElement('pre')

在上述代码块中,document中存在一个名为’creatElement’的方法并且被调用。
如果对数字字面量使用方法,并且数字文字没有指数且没有小数点,请在方法调用之前的点之前留出空格,防止点被解释为小数点。

.toExponential();
//或
77
.toExponential();
//或77.toExponential()
//或
77...toExponential();
//或
77.0..toExponential()//因为77. === 77.0,没有歧义(no ambiquity)

方括号访问器

基本语法

object['property']

property_name是一个字符串。该字符串不一定是一个合法的标识符;它可以使任意值,例如,‘1foo’,‘&abc*’,甚至是’ '(一个空格)。
例如:

document['creatElement']('pre');

这里的代码的功能跟上一个例子的作用是相同的。
在方括号的前面允许有空格。

document ['creatElement']('pre');

区别

它们之间的差异可以分为两个方面,一个是功能上的差异,一个是性能上的差异。

(1)功能层面

点号访问器只能访问有效的属性名,如果不存在就是undefined

  • 当你的属性名包含了特殊符号(例如空格,数字开头等),则必须使用中括号访问器
  • 当你的属性名是一个动态变量的时候,则必须使用中括号访问器。
  • 简而言之就是点号访问器更快捷,中括号访问器的功能更强大。

(2)性能层面

由于中括号访问器中的内容是JavaScript表达式,需要计算;而点号访问器只能访问已存在属性名,不需要计算;所以从理论角度来说点号访问器的执行速度要优于中括号访问器,但是经过实际测试差别不大。

参考资料:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/Property_Accessors

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值