数组与对象
数组
创建数组
JS 中创建数组有两种方式:
利用 new 创建数组
jsvar 数组名 = new Array(); var arr = new Array(); // 创建一个新的空数组
注意 Array() ,A 要大写
利用数组字面量创建数组
js// 1. 使用数组字面量方式创建空的数组 var 数组名 = []; // 2. 使用数组字面量方式创建带初始值的数组 var 数组名 = ["小白", "小黑", "大黄", "瑞奇"];
- 数组的字面量是方括号
[ ]
- 声明数组并赋值称为数组的初始化
- 这种字面量方式也是我们以后最多使用的方式
- 数组元素的类型
- 数组的字面量是方括号
数组中可以存放任意类型的数据,例如字符串,数字,布尔值等。
js
var arrStus = ["小白", 12, true, 28.9];
获取元素
索引 (下标) :用来访问数组元素的序号(数组下标从 0 开始)。
数组可以通过索引来访问、设置、修改对应的数组元素,可以 通过 数组名[索引]
的形式来获取数组中的元素。
js
// 定义数组
var arrStus = [1, 2, 3];
// 获取数组中的第 2 个元素
console.log(arrStus[1]);
注意:如果访问时数组没有和索引值对应的元素,则得到的值是 undefined
遍历数组
数组遍历
把数组中的每个元素从头到尾都访问一次(类似学生的点名),可以通过 for 循环索引遍历数组中的每一项
js
var arr = ["red", "green", "blue"];
for (var i = 0; i < arr.length; i++) {
console.log(arrStus[i]);
}
数组的长度
数组的长度:默认情况下表示数组中元素的个数
使用 数组名.length
可以访问数组元素的数量(数组长度)。
js
var arrStus = [1, 2, 3];
console.log(arrStus.length); // 3
注意:
- 此处数组的长度是数组元素的个数,不要和数组的索引号混淆。
- 当我们数组里面的元素个数发生了变化,这个 length 属性跟着一起变化
新增元素
数组中可以通过以下方式在数组的末尾插入新元素:
数组[数组.length]
= 新数据;
对象
就是花括号 { }
里面包含了表达这个具体事物(对象)的属性和方法;{ }
里面采取键值对的形式表示
- 键:相当于属性名
- 值:相当于属性值,可以是任意类型的值(数字类型、字符串类型、布尔类型,函数类型等)
代码如下:
js
var star = {
name: "张三",
age: 18,
sex: "男",
sayHi: function () {
console.log("大家好啊~");
},
};
上述代码中 star 即是创建的对象。
对象的使用
对象的属性
- 对象中存储具体数据的 "键值对" 中的 "键" 称为对象的属性,即对象中存储具体数据的项
对象的方法
- 对象中存函数的 "键值对" 中的 "键" 称为对象的方法,即对象中存储函数的项
访问对象的属性
- 对象里面的属性调用:对象。属性名,这个小点 . 就理解为“的”
- 对象里面属性的另一种调用方式:对象
['属性名']
,注意方括号里面的属性必须加引号 示例代码如下:jsconsole.log(star.name); // 调用名字属性 console.log(star["name"]); // 调用名字属性
调用对象的方法
- 对象里面的方法调用:对象。方法名 () ,注意这个方法名字后面一定加括号 示例代码如下:js
star.sayHi(); // 调用 sayHi 方法,注意,一定不要忘记带后面的括号
- 对象里面的方法调用:对象。方法名 () ,注意这个方法名字后面一定加括号 示例代码如下:
变量、属性、函数、方法总结 属性是对象的一部分,而变量不是对象的一部分,变量是单独存储数据的容器
- 变量:单独声明赋值,单独存在
- 属性:对象里面的变量称为属性,不需要声明,用来描述该对象的特征
方法是对象的一部分,函数不是对象的一部分,函数是单独封装操作的容器
- 函数:单独存在的,通过“函数名 ()”的方式就可以调用
- 方法:对象里面的函数称为方法,方法不需要声明,使用“对象。方法名 ()”的方式就可以调用,方法用来描述该对象的行为和功能。
遍历对象
for ... in
语句用于对数组或者对象的属性进行循环操作。
其语法如下:
js
for (变量 in 对象名字) {
// 在此执行代码
}
语法中的变量是自定义的,它需要符合命名规范,通常我们会将这个变量写为 k 或者 key。
js
for (var k in obj) {
console.log(k); // 这里的 k 是属性名
console.log(obj[k]); // 这里的 obj[k] 是属性值
}