Day06笔记
一、数组array
什么是数组
-
数组是复杂数据类型array。
-
函数是装代码的盒子,数组就是装数据(基本数据类型)的盒子。
语法:
// 字面量方式创建数组。
var 数组名 = [数据1,数据2];
// new语句,构造函数方式创建数组。
var 数组名 = new Array(数据个数);
使用数组中数据的方法:
通过数组的下标(索引号)访问数组中的数据并赋值。
数组名[下标(索引号)] = 数据值;
注意:
- 数组为动态数组。
- 当用下标(索引号)访问超过数组数据个数时,会增大数组(存储单元)。
二、数组的属性
length属性
数组名.length => 数组中数据的个数
push属性
数组名.push(增加的数值);
// 给数组的末尾增加一个元素(简单数据类型)。
pop属性
数组名.pop();
// 将数组末尾的元素删除。
unshift属性
数组名.unshift(增加的数值);
// 给数组首位增加一个元素(简单数据类型)。
shift属性
数组名.shift();
// 将数组的首位元素删除。
reverse属性
数组名.reverse();
// 反转数组中数据的排列顺序。
sort属性
数组名.sort();
// 将数组中的数据从小到大排列。
concat属性
var 新建函数名 = 拼接数组名.concat(数组名/[拼接数值1,拼接数值2]);
// 数组拼接。
join属性
var 新建函数名 = 连接数组名.join('连接符号');
// 用连接符将数组中的数据连接起来,变成一个字符串。
// 字符串可以是空白。
splice属性
数组名.splice(开始截取数据的下标(索引号),截取数据的个数,替换的内容);
// 截取数组中的数据,并且可以替换内容。
// 替换的内容可以不写,光截取数据。
三、对象object
什么是对象
- 对象是复杂数据类型。
- 对象中封装了一个事物的属性和功能(方法)。
- 在我们开始写程序前,都要先用对象描述好要操作的事务的属性和功能(方法),在按照要求使用对象的功能(方法)和访问对象的属性。
- 具有封装能力:把相关的信息(无论数据或功能/方法)存储在对象中的能力。
语法:
// 字面量方式创建对象。
var 对象名 = {
属性名1 : 属性值1,
属性名2 : 属性值2,
// 没有名字的函数 => 匿名函数。
功能(方法)名 : function(){
函数体;
}
}
// new语句,Object是js内置给我们的构造函数,用于创建一个对象使用。
var 对象名 = new Object();
对象名.属性名 = 属性值;
对象名.功能(方法名) = function(){
函数体;
}
如何使用对象中存储的数据
// 属性的访问方法
对象名.属性名
// 功能(方法)的访问方法
对象名.功能(方法)名()
四、数据类型之间的存储区别
栈
- 存储基本数据类型的内容。
- 存储复杂数据类型内容在堆中的地址。
堆
- 存储复杂数据类型的内容。
- 通过栈中的地址来访问堆中的内容。
五、数据类型之间的比较
- 基本数据类型是 值 之间的比较
var num = 1;
var str = '1';
console.log(num == str) => true;
function fn(a) {
a = 10;
console.log('a=', a); => a = 10
}
var num = 100;
fn(num);
console.log('num=', num); => num = 100
- 复杂数据类型是 地址 之间的比较
var obj = { name: 'Jack' }
var obj2 = { name: 'Jack' }
console.log(obj == obj2) // false
function fn(a) {
a[0] = 10;
console.log('a[0] =', a[0]); => a[0] = 10
console.log('a =', a); => a = [10,2,3,4]
}
var num = [1,2,3,4];
fn(num);
console.log('num[0] =', num[0]); => num[0] = 10
console.log('num =', num); => num = [10,2,3,4]