前言:上一遍博客介绍了JS中的五种简单数据类型,这篇博客主要介绍JS中的复杂数据类型,object对象。注:本文参考阮一峰JS教程中关于对象的介绍,然后结合自己的理解写成,附带链接 。
1、概述
什么是对象?简单说,对象就是一组“键值对”(key-value)的集合,是一种无序的复合数据集合。
对象的所有键名都是字符串(ES6 又引入了 Symbol 值也可以作为键值),所以加不加引号都可以。如果键名是数值的时候,会被自动转为字符串。所以“键名可以是数值”这句话是错误的。如下列代码,看着键名是数值,但实际上它们已经被转换成字符串了。
var obj = {1: a,3.2: ,1e2: true,1e-2: true,.234: true,0xFF: true};
但是,当键名不加引号的时候,则其必须符合标识名的条件(比如第一个字符不能为数字,或者不能含有空格或运算符),且也不是数字,否则会报错。
2、对象的引用
如果不同的变量名指向同一个对象,那么它们都是这个对象的引用,也就是说指向同一个内存地址。修改其中一个变量,会影响到其他所有变量。
如:
var o1 = {};"hello world"var o2 =