javascript的符号中括号[]和大括号{}的区别

javascript的符号中括号[]和大括号{}的区别

一、前言

今天偶然间测试了js中的符号[]和{},发现是有一定的区别的,我们也不是话唠,先奉上今天的测试代码吧:

var arr1=[];
var arr2={};
console.log(arr1 instanceof Array);
console.log(arr1 instanceof Object);
console.log(arr2 instanceof Object);
console.log(arr2 instanceof Array);

测试结果如下:

二、区别

1、{ } 大括号

表示 定义一个对象 ,大部分情况下要有 成对的属性和值,或是函数 。

如: var CJC = {“Name”:”CJC”,”Address”:”GuangZhou”};

上述中代码声明了一个 名为“CJC”的对象 ,属性名和值用( 冒号 )隔开,多个属性或函数用 , ( 逗号 )隔开,因为是对象的属性,

所以我们在访问的时候,应该用 .(点) 来层层访问: CJC.Name、CJC.Address ,当然我们也可以用数组的方式来访问,如: CJC[“Name”]、CJC[“Address”] ,结果是一样的。

该写法,在JSON数据结构中经常用,除此之外,我们平时写函数组的时候,也经常用到,如:

var CJC = {
  Name = function(){
   return "CJC";
     },
  Address = function(){
   return "GuangZhou";
     }
 } 调用方式差不多,因为是函数组,所以要加上(),如:alert( CJC. Address() );

2、[ ]中括号

表示一个数组,也可以理解为一个数组对象。

如: var CJC = [ “Name”,”CJC”,”Address”,”GuangZhou” ];

很明显, 每个值或函数,都是独立的,多个值之间只用,(逗号)隔开 ,因为是数组对象,所以它等于:

var CJC = Array( “Name”,”CJC”,”Address”,”GuangZhou” );

访问时,也是和数组一样,alert( CJC[0] );

3、{ } 和[ ] 一起使用

我们前面说到 ,{ } 是一个对象,[ ] 是一个数组, 我们可以组成一个 对象数组 ,如:

var CJC ={

  "Name":"CJC",

  "Address":["GuangZhou","TianHe"],

  "HisFriend":[{"f1":"QinYu"},{"f2":"HaiFeng"}]

  }
console.log(CJC.Name);
console.log(CJC.Address[0]);
console.log(CJC.HisFriend[0].f1);

测试结果如下:

从上面的结构来看,CJC对象里面的第一项是属性,第二项是一个数组,第三项是一个数组对象。

调用起来也是,对象的属性用点(.)访问,数组的属性用[index]来 访问。​