# 第 5 章-引用类型
ECMA 从技术上讲是一门面向对象的语言,但是不具备传统的面向对象语言支持的类和接口
# 创建 Object 实例的方法
- 使用 new 操作符+Object 构造函数
var yayxs = new Object();
yayxs.name = `yayxs`;
yayxs.age = 18;
1
2
3
2
3
- 对象字面量表示法
var yayxs = {
//这个花括号表示字面量的开始
name: `yayxs`,
age: 18 // 在最后一个属性后添加逗号,会在IE7及更早版本导致错误
};
1
2
3
4
5
2
3
4
5
或者
var yayxs = {
name: 'yayxs',
age: 18,
6: true
};
1
2
3
4
5
2
3
4
5
# 创建数组 Array
- 使用 Array 构造函数 其中 new 是可以省略的
var colors = new Array(10); // 这个数量会变成length
var colors = new Array('red', 'blue'); // 这个数量会变成length
1
2
3
2
3
- 数组字面量 []
# 数组的 length
利用数组的length
属性可以很方便往数组后边增加一个新的元素
var colors = [`red`, `blue`];
colors[colors.length] = `yellow`;
1
2
2
# 检测数组
为了确定某个对象是不是对象的经典问题
对于一个网页,全局作用域,使用instanceof
操作符
if (val instanceof Array) {
// 对数组进行操作
}
1
2
3
2
3
那么问题是,它假定只有一个全局执行环境,假如网页中包含多个框架,那么就存在了两个以上不同的全局执行环境,从而存在两个以上不同版本的 Array 构造函数...
那么为了解决这个问题呢,ECMA5 新增了Array.isArray()
# push()、pop()
栈:后进先出的数据结构 队列:先进先出