简单了解对象
对象就是一个数据的集合(复杂数据),对象属于复杂数据类型(引用数据类型) JS 的数据类型分为基本数据和复杂数据。
创建对象 字面量方式创建对象
var obj = {
name: 'QF',
age: 18
}
console.log(obj)
内置构造函数创建
var obj1 = new Object() // 创建一个空对象
console.log(obj1)
对象内对于 键(key) 的要求
1. 推荐使用 符合变量命名规范和规则的
2. 可以使用数字作为 key
3. 可以使用特殊符号
对象数据类型的操作(增删改查)两种语法
-
点语法
var obj = { name:'你好' } //增加 (对象.新key = 值) obj.age = 123 //删除 (delet obj.key) delete obj.name console.log(obj) //修改(对象.key = 新值) obj.age = 123456 //查询(对象.key) console.log(obj.age) -
中括号语法(数组语法)
var obj1 = { name:'你好' } // 查 console.log(obj1['name']) // 改 obj1['name'] = '不好' console.log(obj1) // 增 obj1['age'] = 123 console.log(obj1) // 删 delete obj1 ['name'] console.log(obj1) -
两者的差异
- 对象 的 key 符合命名规范的时候 都可以
- 出现纯数字 为 key 或者 特殊符号 @# 我们需要使用 中括号语法
- 当出现变量的时候(想用变量作为 key) 也需要使用 中括号语法
for in 循环遍历对象
遍历对象就是拿到对象的所有 键值对
var obj = {
name: 'QF',
a: 123,
b: 456,
c: 789
}
for (var key in obj) {
console.log(key, obj[key])
}
数组数据类型
存放一些数据的集合
var arr = [100, 200, 300, 'a', 'b', 'c', true, false, undefined] // 注意是 中括号, 不是大括号
console.log(arr)
创建数组数据类型
- 使用字面量的方式创建数组
-
字面量
var arr = [1, 2, 3, 4, 5] console.log(arr)
- 内置构造函数创建数组
-
内置构造函数
var arr1 = new Array() // 空数组 console.log(arr1) var arr2 = new Array(5) // 创建一个长度为 5 的数组(虽然有长度, 但是实际的值为 空) console.log(arr2) var arr3 = new Array(5, 10) // 创建一个有内容的数组, 第一个值为 5 第二个值为 10 console.log(arr3)
数组的 length 属性
数组的 length代表了 数组的 成员数量
* 语法: 数组.length
var arr = [1, 2, 3, 4, 5, undefined]
console.log(arr.length)
数组的 索引 概念
数组的索引就代表了 当前数据 在 数组的 第几个 位置(注意!!! 下标 从 0开始)
var arr = [1, 2, 3, 4, 5]
// 下标 0 1 2 3 4
console.log(arr)
// 通过 下标获取数组对应的成员
console.log(arr[0]) // 1 获取数组的第一个成员
console.log(arr[4]) // 5
console.log(arr[arr.length - 1]) // 相当于 arr[4] ---> 5
for 循环遍历数组
拿到数组的每一个成员
var arr = [1, 2, 3, 4, 5]
// 下标 0 1 2 3 4
for (var i = 0; i < arr.length; i++) {
console.log(arr[i])
}
数据类型之间的区别
存储的区别
1. 基本数据类型: 存储在栈内存中, 变量内部就是实际的值
2. 引用数据类型: 变量存储在栈内存中, 变量内部存储的是 指向 堆内存 的 地址(对象实际的值, 存储在 堆内存中)
赋值的区别
1. 基本数据类型: 是值的传递
可以理解为, 将我自身的值 复制一份 给到另一个变量, 后续修改另一个变量时 与我自身没有任何关系
2. 引用数据类型:是地址的传递
可以理解为, 将自身的 地址 复制一份 给到另一个变量, 后续修改互相会有影响
比较的区别
1. 基本数据类型
比较时, 是拿变量实际的值, 去做对比
2. 引用数据类型
比较时, 是拿引用地址做对比, 判断是不是执行一个地址
传参的区别
1. 基本数据类型
是 值 的传递, 将自身的值 复制一份 传递给函数的形参
2. 引用数据类型
是 地址 的传递, 将自身的地址 复制一份 传递给函数的形参