javascript 中的括号和点号的作用

使用中括号运算符 [] 可以存取数组元素值,使用点运算符 . 可以存取对象的属性值。其格式如下:

1. a.b 点运算符的用法
2. c[b] 中括号运算符的用法

注意:操作数a表示对象,操作b表示属性名。
     如果属性值是函数,应增加小括号,实现方法调用操作。操作数b是不能使用字符串或字符串表达式的。

操作数C可以是数组,也可以是对象。具体说明如下:
 . 如果左侧操作数是数组,则中括号包含的操作数应是一个值为非负整数的表达式,作为下标值,用来指定元素在数组中的位置。
 . 如果左侧操作数是对象,则中括号包含的操作数应是一个值为字符串的表达式,映射对象的属性名。

中括号和点号应该属于运算符范畴,但是新版本JavaScript把它们视为语言核心命令来使用。
使用中括号运算符  [ ] 不仅可以存取数组元素的值,也可以存取对象属性值
1. 存取数组元素的值

   var array = [1,2,'v',true,{}];
   console.log(array[1]) // 读取第二个元素的值,返回数字 2

2. 存取对象属性的值
   
   var object = {
        x:1,
        y:function(){
              return 2
          }

   };
   
   console.log(object['y']()); // 调用方法y, 返回2
   object['x'] = 3 // 重置属性x的值
   console.log(object['x']); // 读取属性x的值,返回3
 使用点运算符 . 可以存取对象属性的值,它比中括号灵活、方便,因为点运算符右侧可以直接指定属性名称,而不是属性名称的字符串。
var object = { z: 1}; //定义对象z
console.log(object.z) //返回1 读取对象属性z的值
对于中括号运算符,可以通过变量或字符串表达式来传递特定值。
var b = "x" //把属性x的标志符名作为字符串存储在变量b中;
var a = { x: 1 } //定义对象a
console.log(a[b]); 返回1 通过变量间接获取对象a的属性x的值。
console.log(a.b); //返回undefined 点运算符无法识别变量引用。
下面两种方法都可以读取数组 a 的第二个元素值,虽然说a['1']中的参数是一个字符串,但是中括号运算符能够把他转换为数字。
var a = ['x',true,{},1]; //定义数组
console.log(a[1]);返回的是true
console.log(a['a']);返回的是true
如果中括号运算符的第二个操作数为对象,会调用toString()方法把对象转换为字符串表示。如果是布尔值true和false, 将被转换为字符串 “true”和“false”,而不是1和0.
var a = { //定义对象
    
   "true":1, //定义属性"true"
   "false":0 //定义属性"false"

}
console.log(a[true]);// 返回1 把布尔值true转换为字符串"true"
console.log(a[false]); // 返回0 把布尔值false转换为字符串"false"
在不确定对象属性时,使用中括号运算符来遍历对象属性很方便,但如果使用点运算符则容易引发异常。下面代码使用中括号运算符变量客户端window对象的所有属性以及属性值
for(o in window){
  document.write('window.' + o + '=' + window[o] + '<br />');

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值