es6新语法第二天
1.深入对象
1.1创建对象的三种方式
- 利用字面量
const o = {
name = '小明'
}
- 使用new Object()
const obj = new Object()
obj.uname = '小明'
- 利用构造函数创建对象
1.2构造函数
是一种特殊的函数,主要用来初始化对象。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PRZjxqJk-1686914089275)(C:\Users\20664\AppData\Roaming\Typora\typora-user-images\image-20230614212351230.png)]
约定:
- 构造函数命名都以大写字母开头
- 使用构造函数必须前面+new
function Pig(uname, age) {
this.uname = uname
this.age = age
}
// console.log(new Pig('佩奇', 6))
// console.log(new Pig('乔治', 3))
const p = new Pig('佩奇', 6)
构造函数里面不需要return,返回值是新创建的对象
实例化过程
- 创建新空对象
- 构造函数this指向新对象
- 执行构造函数代码,修改this,添加新的属性
- 返回新对象
1.3实例成员&静态成员
实例成员:
使用构造函数生成的对象的属性和方法
静态成员:
构造函数上的属性和方法
Math.PI Date.now() Math.random()
2.内置构造函数
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-veY44dFK-1686914089276)(C:\Users\20664\AppData\Roaming\Typora\typora-user-images\image-20230615112754970.png)]
2.1Object
三个静态方法,只有静态成员可以使用
const o = { uname: 'pink', age: 18 }
// 1.获得所有的属性名
console.log(Object.keys(o)) //返回数组['uname', 'age']
// 2. 获得所有的属性值
console.log(Object.values(o)) // ['pink', 18]
// 3. 对象的拷贝
// const oo = {}
// Object.assign(oo, o)
// console.log(oo)
Object.assign(o, { gender: '女' })
console.log(o)
2.2Array
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-s8laB9Pr-1686914089276)(C:\Users\20664\AppData\Roaming\Typora\typora-user-images\image-20230615114238256.png)]
reduce(回调函数,初始值)
arr.reduce(function(累计值, 当前元素){}, 起始值)
arr.reduce(function (prev, item) {
// console.log(11)
// console.log(prev)
return prev + item
}, 0)
arr.reduce(function (prev, item) {
console.log(11)
// console.log(prev)
return prev + item
})
const arr = [1, 2, 3]
const re = arr.reduce((prev, item) => prev + item)
console.log(re)
reduce就是求和
如果是对象数组,初始值必须设置0,
const arr = [{ name: '张三', salary: 10000 }, { name: '李四', salary: 10000 }, { name: '王五', salary: 20000 }, ] // 涨薪的钱数 10000 * 0.3 // const money = arr.reduce(function (prev, item) { // return prev + item.salary * 0.3 // }, 0) const money = arr.reduce((prev, item) => prev + item.salary * 0.3, 0) console.log(money)
数组常见方法
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FecsRZW7-1686914089276)(C:\Users\20664\AppData\Roaming\Typora\typora-user-images\image-20230615134809960.png)]
find方法
只执行第一个满足条件的
const arr = [
{
name: '小米',
price: 1999
},
{
name: '华为',
price: 3999
},
]
// 找小米 这个对象,并且返回这个对象
// const mi = arr.find(function (item) {
// // console.log(item) //
// // console.log(item.name) //
// console.log(111)
// return item.name === '华为'
// })
伪数组转换为真数组
liss (真数组)= Array.from(lis)
2.3String
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-goBLjOvi-1686914089276)(C:\Users\20664\AppData\Roaming\Typora\typora-user-images\image-20230615150847589.png)]
- split(分隔符)将字符串转化成数组 , 和join()相反
分隔符可以是- ,等等
join是数组加分隔符变为字符串
const str = [10,20,30]
// 字符串转换为数组
// 利用中间符隔开
str.split(',')
- 字符串的截取
substring(开始的索引号[,结束的索引号])
如果省略结束的索引号,默认取到最后
结束的索引号不包含想要截取的部分
- startsWith
检测是否以某字符开头,可以加索引号
const str = 'pink老师上课中'
console.log(str.startsWith('pink')) //true
- includes
判断一个字符串是否在另一个字符串里,[索引号]
2.4Number
常用方法:
toFixed() 设置保留小数的长度,默认是整数
检测是否以某字符开头,可以加索引号
const str = 'pink老师上课中'
console.log(str.startsWith('pink')) //true
- includes
判断一个字符串是否在另一个字符串里,[索引号]
2.4Number
常用方法:
toFixed() 设置保留小数的长度,默认是整数