引用类型——Object和Array(一)

209 阅读2分钟

这是我参与11月更文挑战的第19天,活动详情查看:2021最后一次更文挑战

Object 类型

创建 Object 实例的方式有两种

  • 使用 new 操作符后跟 Object 构造函数
var person = new Object();
person.name = "nickname";
person.age = 20;
  • 使用对象字面量表示法:对象定义的简写形式,简化创建包含大量属性的对象的过程
var person = {
    name: "nickname",
    age: 20
};

注:在最后一个属性后面添加逗号,会在 IE7 及更早版本和 Opera 中导致错误

访问对象属性
  • 访问对象属性一般都是点表示法
console.log(person.name);
  • 也可以使用方括号表示法,将要访问的属性以字符串形式放在方括号中
console.log(person["name"]);

方括号表示法的优点是可以通过变量访问属性

var propertyName = "name";
console.log(person[propertyName]);

Array 类型

创建数组的基本方式有两种

  • 使用 Array 构造函数
var students = new Array("zhangsan", "lisi");
var students = Array(3); // 省略 new 操作符
  • 使用数组字面量表示法,数组字面量由一对包含数组项的方括号表示,多个数组项之间以逗号分隔
var students = ["zhangsan", "lisi"];
var students = []; // 创建一个空数组

读取和设置数组的值

  • 使用方括号并提供相应值的基于0的数字索引
console.log(students[1]); // 显示第二项
students[2] = "gouwu"; // 新增第三项
students[0] = "haoyi"; // 修改第一项

数组的 length 属性不是只读的,可以设置这个属性,从数组的末尾移除项或向数组添加项。

检测数组

虽然可以使用 instanceof 操作符确定是不是数组,但是它假定只有一个全局执行环境。如果有两个以上不同的全局执行环境,就存在两个以上不同版本的 Array 构造函数。

ES5 新增 Array.isArray() 方法确定某个值是不是数组,不管在哪个全局执行环境。

if (Array.isArray(value)) {

}