这是我参与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)) {
}