Javascript对象和数组操作符——.和[]

来源:互联网 发布:图像算法工程起薪 编辑:程序博客网 时间:2024/06/05 05:10

JavaScript中对象和数组(数组也是对象),操作符主要有两种:

. 和[]

这两种有什么区别呢?
请看测试代码

//读操作let temp={area_id:"1",county_id:"1",plate_no:"11",product:"40"};let d1=['area_id','county_id','product'];console.log(temp.area_id);   //输出1console.log(temp['area_id']);   //输出1console.log(d1.area_id);      //undefinedconsole.log(d1['area_id']);     //undefinedconsole.log(d1[0]);           //输出area_id//写操作let connectString={};connectString["value"]="sss";  //输出    { value: 'sssss' }connectString.value='sssss';   //输出    { value: 'sssss' }let test=[];test[0]='s';                    //输出     [ 's' ]test.a='ss';                    //输出     [ 's', a: 'ss' ]console.log(test.a);            //输出     ssconsole.log(test[1]);           //输出     undefined,可以看到虽然在test中存储了一个字符串一个对象,但是test[1],并没有把对象输出出来console.log(test[0]);           //输出      s

总结:
数组是特殊的对象,对象的所有操作都可以对一个数组进行,通过.和[]操作符都可以对对象和数组进行读写操作,对于单条赋值语句是没有问题的,两者是通用的。
对象的两个操作,应该大家都没问题,通过.和[]是一样的。
数组的操作,.和[]是不同的,通过.运算符,是把数组作为对象进行操作的,通过test[0]是作为数组进行的,两者相当于隔离开来,可以这么理解。而且对于同一个数组,对象操作和数组操作,都是存储在一起的,请看下面的Code

let test=[];test[0]='s';      test.a='sss';              test[1]={a:'ss'};                    console.log(test);            //输出    [ 's', { a: 'ss' }, a: 'sss' ],可以看到对数组的对象操作,是放在存储结构的最后面

所以为了防止混乱,最好是
如果是数组,就使用[]操作符
如果是对象,就使用 . 操作符,
这样就不会产生更混乱
那么接下来是重点,如果在一个循环中对一个对象进行赋值会发生什么?

let d1=['area_id','county_id','product'];let connectString={};d1.map((value)=>{        connectString.value='ss';});console.log(connectString);    //输出结果为{ value: 'ss' },可以看到并没有把数组中的所有作为键复制给connectString

换一种操作

let d1=['area_id','county_id','product'];let connectString={};d1.map((value)=>{        connectString[value]='ss';});console.log(connectString);          //输出   { area_id: 'ss', county_id: 'ss', product: 'ss' },可以看到把数组的每一项作为对象的键值对赋值成功

总结:在循环操作中,如果要对对象赋值,使用[]操作符,不能使用.操作符
那么是为什么呢?
[]操作符:是取[]里面的值赋值给对象或者数组
.操作符:是直接把.后面作为值赋值给对象或者数组的,不会去取他的值
当然,这是通过实践总结出来的,那么最基本的是什么呢?就是Javascript本身对于对象赋值操作有两种不同的处理方式:
* 如果属性或方法的名称是简单的标识符,则可在对象名称与句点之后加入该属性*
如果属性或方法的名称不是简单的标识符,或在编写脚本时不知道该属性,则可在方括号内使用表达式作为属性的索引
详情链接:
Javascript对象和数组

原创粉丝点击