1.深入对象
1.创建对象的三种方式
// 1.利用字面量创建对象
const obj = {
name: 'red'
}
// 2.利用new Object创建对象,创建的是一个空对象
const o=new Object()
// 3.利用构造函数创建对象
2.构造函数
也是一个函数,用于初始化和创建对象,快速创建多个类似对象
以大写字母为开头
只能用new操作符来执行
示例
//创建一个构造函数
function Pig(uname, age) {
this.uname = uname //this指向要创建的新对象
this.age = age
}
const p = new Pig('peiqi', 6)
console.log(p)
3.实例成员
通过构造函数创建的对象称为实例对象,实例对象中的属性和方法称为实例成员(实例属性和实例方法)
4.静态成员
在构造函数上直接增加的属性和方法称为静态成员(静态属性和静态方法)
function Pig(name) {
this.name = name
}
Pig.eyes = 2 //静态属性
console.log(Pig.eyes) //只能通过构造函数访问
Pig.way = function () { //静态方法
console.log(this) //this指向构造函数
}
Pig.way()
2.内置构造函数
3.Object的静态方法
1.Object.keys()——获取所有的属性名
2.Object.values()——获取所有的属性值
3.Object.assign()——用于拷贝对象
使用场景:给对象添加属性
const o = {
uname: 'red',
age: 18
}
//1.获取所有的属性名
console.log(Object.keys(o)) //返回数组
// 2.获取所有的属性值
console.log(Object.values(o)) //返回数组
// 3.对象的拷贝
const oo = {}
Object.assign(oo, o) //新对象放前面,旧对象放后面
console.log(oo)
// 添加属性
Object.assign(o, {
gender: '女'
})
console.log(o)
4.Array
1.数组的常用方法
1.reduce()的示例
const arr = [1, 2, 3]
//arr.reduce(回调函数,初始值)
// arr.reduce(function(上一次值,当前值){},初始值)
//1.没有初始值
const total = arr.reduce(function (prev, current) {
return prev + current
})
console.log(total)
// 2.有初始值
const t = arr.reduce(function (prev, current) {
return prev + current
}, 10)
console.log(t)
// 箭头函数写法
const o = arr.reduce((prev, current) => prev + current, 10)
console.log(o)
如果遇到对象属性
const arr = [{
name: '李四',
salary: 10000
}, {
name: '张三',
salary: 10000
}, {
name: '王五',
salary: 10000
}, ]
const total = arr.reduce(function (prev, current) {
return prev + current.salary //对象数组注意相加的是什么属性,要写清楚
}, 0) //遇见对象数组一定要写初始值,没有就写0
console.log(total)
2.find()
返回数组中满足提供的测试函数的第一个元素的值。否则返回 undefined。
// 常用于查找对象
const arr = [{
name: '小米',
place: 3999
}, {
name: '华为',
place: 2999
}]
const re = arr.find(function (item) {
return item.name === "小米"
})
console.log(re)//返回的是对象
3.every()
测试一个数组内的所有元素是否都能通过指定函数的测试。它返回一个布尔值。
const arr1 = [10, 20, 30]
const flag = arr1.every(item => item >= 20)
console.log(flag)
4.some()
测试数组中是否至少有一个元素通过了由提供的函数实现的测试。如果在数组中找到一个元素使得提供的函数返回 true,则返回 true;否则返回 false。它不会修改数组。
const arr1 = [10, 20, 30]
const flag = arr1.some(item => item >= 20)
console.log(flag)