JS对象
一.对象
是一组属性和方法的集合
一部手机:属性有颜色、尺寸、品牌、CPU、内存... 方法有打电话、玩游戏、看视频、听音乐、办公....
一辆汽车:属性有颜色、品牌... 方法有代步、拉货....
万物皆对象
1.JS对象分类
自定义对象:自己创建的对象
内置对象:JS提供的对象,可以直接使用
宿主对象:根据不同的环境划分
2.创建自定义对象(字面量)
使用{ }创建空对象
{ 属性名: 属性值, 属性名: 属性值, ... }
属性名如果含有特殊字符,必须添加引号
3.访问属性
对象.属性名
对象['属性名']
如果属性不存在结果是undefined
undefined出现位置:变量声明未赋值,函数没有返回值,函数中没有传参
4.创建自定义对象 (内置构造函数)
二.模板字符串
` 反引号之间的内容就是模板字符串${JS表达式} `
解决了字符串的拼接
三.对象中的方法
就是一个函数
var p={ name: '新哥', tan: function(){ this 指向调用当前方法的对象 } } p.tan() //调用方法 |
三.数据的存储
1.原始类型
直接将数据存储到栈内存
2.引用类型
包含函数、对象、数组
会将值存储到堆内存中,会自动生成一个地址
var xin={ }
把对象的生成的地址保存到栈内存
引用类型数据如果不被任何的地址所指向就会自动销毁
null 是一个空地址,没有指向任何堆内存数据
如果要销毁引用类型的数据,只需要赋值为null即可
四、数组
数组是一组数据的集合,每个数据是一个元素
1.创建 —— 数组字面量
[元素1, 元素2, ... ]
2.访问数组元素
下标(索引):是JS自动为每个元素添加的编号,从0开始的一个整数 >=0
数组[下标]
如果元素不存在,返回的结果是undefined
3.数组的长度
数组.length 获取元素的个数
(1)在数组的末尾添加元素
数组[数组.length] = 值
(2)清空数组
数组.length = 0
4.创建数组 —— 内置构造函数
new Array(元素1, 元素2, ...)
new Array(3) 初始化长度值,可以添加更多个元素
5.数组的分类
关联数组:以字符串作为下标 (了解)
索引数组:以>=0的整数作为下标
6.数组和对象的区别
两种都可以存储一组数据,对象是通过属性存储每个值,数组是通过元素存储每个值
对象存储数据是无序的,可以不分先后顺序;数组存储的数据有序的,可以进行排列。
7.遍历数组元素
依次访问每个元素
for(var k in 数组){ k 下标 数组[k] 元素 } |
for(var i=0;i<数组.length;i++){ i 下标 数组[i] 元素 } |
new Object() 创建一个空对象{},需要单独添加属性。
5.遍历属性
依次访问对象中的每个属性
for(var k in 对象){ k 属性名 对象[k] 属性值 } |
6.检测属性是否存在
对象.属性名===undefined true -> 不存在 false -> 存在
对象.hasOwnProperty('属性名') true -> 存在 false -> 不存在
' 属性名' in 对象 true -> 存在 false -> 不存在