js-day05-对象
1对象
1.1什么是对象
对象:js里的一种数据类型,用来描述某个事物
对象是一种无序的数据集合,数组是有序的数据集合
总结
1对象是什么?
- 对象是一种数据类型
- 无序数据的集合
2对象有什么特点?
- 无序数据的集合
- 可以详细描述某个事物
1.2对象使用
对象声明语法
let 对象名={ }
{ }是对象字面量
对象由属性和方法组成
属性:信息或叫特征(名词)
方法:功能或叫行为(动词)
语法:
let 对象名={
属性名:属性值,
方法名:函数,
}
属性
数据描述性的信息成为属性,一般是名词性
- 属性都是成对出现的,包括属性名和值,他们之间使用:翻个
- 多个属性之间使用,分隔
- 属性就是依附在对象上的变量(外面是变量,对象内是属性)
- 属性名可以使用""或’',一般情况下省略,除非名词遇到特殊符号如空格,中横线等
对象属性没有顺序
操作:增删改查
查询对象: 对象名.属性名
重新赋值: 对象名.属性名=值
对对象添加新的数据: 对象名.属性名=值
删除对象中属性: delete 对象名.属性名
1增
对象名.属性值=新值
2删
delete 对象名.属性名
3改
语法: 对象名.属性名=值
4查☆
声明对象,并添加了诺干属性后,可以使用,获得对象中属性对应的值,称之为属性访问
语法:对象名.属性名
两个方法
-
点形式 对象.属性
-
[] 形式 对象[‘属性’]
两种方式有什么区别?
-
点后面的属性名一定不要加引号
-
[] 里面的属性名一定加引号
-
后期不同使用场景会用到不同的写法
查询:
方法一:语法:对象.属性
console.log(goods.num);
方法二:
对象[属性]
console.log(goods[‘name’]);
对象中的方法
数据行为性的信息成为方法
- 方法是由方法名和函数两部分构成,他们之间用:分隔
- 多个属性之间使用,分隔
- 方法是依附在对象中的函数
- 方法可以使用“”或‘’,一般情况下可以省略,除非名称遇到特殊符号如空格,中横线等
声明对象,并添加了诺肝方法以后,可以使用,调用对象中的函数,称之为方法的调用
也可以添加形参和实参
1.3遍历对象
遍历对象
for遍历对象的问题:
-
对象不像数组一样有length属性,所以无法确定长度
-
对象里面是无序的键值对,没有规律,不像数组里面有规律的下标
- 一般不用for in来遍历数组,主要用来遍历对象
- for in 语法中的k是一个变量 ,再循环的过程中一次代表对象的属性名
- 由于k是变量,所以必须使用【】语法解析
- 一定记住:k是获得对象的属性名,对象名【k】是获得属性值
k获得属性名
obj[k]获得对象值
1.4内置对象
内置对象是什么?
JavaScript内部提供的对象,包含各种属性和方法给开发者调用
- 介绍:Math对象是js提供的一个数学对象
- 作用:提供了一系列做数学运算的方法
- 语法:
- 使用:
- Math对象包含的方法有:
random:生成0-1之间的随机数(包含0不包括1)
ceil:向上取整
floor:向下取整
max:找最大数
min:找最小数
pow:幂运算
abs:绝对值
1.5产生随机数
如何生成max-min之间的随机数 公式:
Math.floor(Math.random()*(max-min+1))+min
验证
1.5.1案例-随机点名案例
需求
- 请把 [‘赵云’, ‘黄忠’, ‘关羽’, ‘张飞’, ‘马超’, ‘刘备’, ‘曹操’] 随机显示一个名字到页面中
思路
- 利用随机函数的上述公式,
- 通过document.write方法输出
总结
拓展-术语解释
1术语
2简单类型又叫做基本数据类型或者值类型,复杂类型又叫做引用类型。
- 值类型:简单数据类型/基本数据类型,在存储时变量中存储的是值本身,因此叫做值类型
string ,number,boolean,undefined,null - 引用类型:复杂数据类型,在存储时变量中存储的仅仅是地址(引用),因此叫做引用数据类型
通过 new 关键字创建的对象(系统对象、自定义对象),如 Object、Array、Date等
3堆栈空间分配区别:
1、栈(操作系统):由操作系统自动分配释放存放函数的参数值、局部变量的值等。其操作方式类似于数据结构中的栈;
简单数据类型存放到栈里面
2、堆(操作系统):存储复杂类型(对象),一般由程序员分配释放,若程序员不释放,由垃圾回收机制回收。
引用数据类型存放到堆里面
4简单类型的内存分配
- 值类型(简单数据类型): string ,number,boolean,undefined,null
- 值类型变量的数据直接存放在变量(栈空间)中
5复杂类型的内存分配
-
引用类型(复杂数据类型):通过 new 关键字创建的对象(系统对象、自定义对象),如 Object、Array、Date等
-
引用类型变量(栈空间)里存放的是地址,真正的对象实例存放在堆空间中
思考
null
- 值类型变量的数据直接存放在变量(栈空间)中