1.Set 对象
// 可不传数组
const set1 = new Set()
set1.add(1)
set1.add(2)
console.log(set1) // Set(2) { 1, 2 }
// 也可传数组
const set2 = new Set([1, 2, 3])
// 增加元素 使用 add
set2.add(4)
set2.add('林三心')
console.log(set2) // Set(5) { 1, 2, 3, 4, '林三心' }
// 是否含有某个元素 使用 has
console.log(set2.has(2)) // true
// 查看长度 使用 size
console.log(set2.size) // 5
// 删除元素 使用 delete
set2.delete(2)
console.log(set2) // Set(4) { 1, 3, 4, '林三心' }
复制代码
不重复性
对象不同指针,无法去重
NaN会被去重
const arr = [1,3,1,3,5];
const arr1 = [...new Set(arr)]; // [1,3,5]
复制代码
2.Map 对象
(键值对) key不受类型限制
const map = =new map();
map.set(true,1);
map.set(1,2);
map({},"ccc")
console.log(map) // Map(3){true=>1, 1>2, {}=>"ccc"}
map.has({}) //true
map.get(true) //2
map.delete({}) // Map(2){true=>1, 1>2}
//传数组
const map = =new map([[true,1],[1,2],[{},"ccc"]]);// Map(3){true=>1, 1>2, {}=>"ccc"}
复制代码
3.for of 和 for in
for(let key in obj){}
for(let value of obj){}
复制代码
4.find 和 findIndex
- find 找到返回被找到的元素。找不到返回undefined
- findIndex 找到返回被找到的元素索引,找不到返回-1
const findArr = [
{ name: '科比', no: '24' },
{ name: '罗斯', no: '1' },
{ name: '利拉德', no: '0' }
]
const kobe = findArr.find(({ name })=> name = '科比');
const kebeIndex = findArr.findIndex(({ name })=> name = '科比');
kobe //{ name: '科比', no: '24' }
kebeIndex // 0
复制代码
5.解构赋值
对象
const obj = {
name:"bs",
age:22,
gender:"女",
doing:{
morning:"fish",
afternoon:"eating",
evening:"sleep"
}
}
const { name, age, genter } = obj;
//name age genter //"bs" 22 "女"
//结构重名
const { name: myName } = obj;
//myName // "bs"
const { doing: { evening }} = obj;
evening // sleep
复制代码
数组
const arr = [1,5,7];
const {1:a, 2:b, 0:c} = arr;
log a b c //5 7 1
复制代码
6.class
- 使用构造函数生成对象
class Person {
constructore( name ) {
//构造器
this.name = name;
}
sayName() {
console.log(this.name)
}
}
const kobe = new Person("科比");
kobe.sayName() // 科比
复制代码
- class = function
- static 静态
- extend 继承
class Animal {
constructor(name,age) {
this.name = name;
this.age = age;
}
}
class Cat extend Animal {
say() {
console.log(this.name, this.age)
}
}
const cat = Cat("ketty",5);
cat.say() //ketty 5
复制代码
7.Array方法
7.1 Array.forEach()
- 遍历数组
- return undefined
let arr [1,2,3,4,5];
arr.forEach(item,index arr) {
console.log(item,index,arr)
}
//
1 0 [1,2,3,4,5]
2 1 [1,2,3,4,5]
3 2 [1,2,3,4,5]
4 3 [1,2,3,4,5]
5 4 [1,2,3,4,5]
复制代码
7.2 Array.map
- 不影响原数组
- return 新数组
const arr1 = [1,2,3,4,5];
const arr2 = arr1.map((item, i, arr)=> i * item)
arr2 // 0 2 6 12 20
复制代码
7.3 Array.filter
- 条件过滤
- return 新数组
const arr = [1,2,3,4,5];
const newArr = arr.filter(num=> num<4)
newArr // [1,2,3]
复制代码
7.4 Array.some
- 检测数组中是否有满足要求的条件
- return booloean
const arr = [1,2,3,4];
let res = arr.some(item=> item>2)
res //true
复制代码
7.5 Array.every
- 检测数组中是否满足全部要求的条件
- return booloean
let arr = [1,2,3,4,5];
let res = arr.every(item => item => 2); // false
let res2 = arr.every(item => item => 0); // true
复制代码
7.6 Array.reduce
- 累加器
let arr = [1,2,3,4];
const res = arr.reduce((pre,naxt)=> {
return pre + next;
},0)
res // 10
复制代码
7.7 Array.flat
- 数组降维
const arr = [1,2,[3,4,[5,6]]];
console.log(arr.flat(Infinity)); // [1,2,3,4,5,6]
复制代码
7.8 Array.flatMap
- map + flat
let arr = ["科比 詹姆斯 安东尼", "利拉德 罗斯 麦科勒姆"];
// [ '科比', '詹姆斯', '安东尼', '利拉德', '罗斯', '麦科勒姆' ]
arr.flatMap(item => item.split(' '))
复制代码
8.箭头函数
- 不能作为构造函数,不能使用new
- 没有自己的this
- 没有arguments对象
- 无原型对象
const fn = name => {}
复制代码
9.Object.keys
- 获取对象key集合
const obj ={
name:"白苏",
age:22,
gender:"女"
}
const keys = Object.keys(obj)
keys // ['name','age','gender']
复制代码
10.模板字符串
const name = '白苏';
const age = 22;
consoloe.log(`${name}今年${age}岁啦`)
复制代码
11.数组的扩展运算符…
//拼接多个数组
let arr1 = [1,2,3];
let arr2 = [4,5,6];
let arr3 = [...arr1,...arr2]
console.log(arr3) // [1,2,3,4,5,6]
//作为参数
function fn(name,...params) {
console.log(name,params)
}
fn('白苏',1,2,3); //白苏 [1,2,3]
复制代码
12.includes
- return boolean
const arr = [1,2,NaN];
console.log(arr.includes(NaN)); // TRUE
console.log(arr.includes(NaN)); // -1
复制代码
13.求幂运算
const num = Math.pow(3,2); //9
//ES7
const num = 3 ** 2; //9
复制代码
14.Object.values
const obj = {
1 : 'a',
2 : 'b',
3 : 'c',
}
console.log(Object.values(obj)) // [1,2,3]
复制代码
15.Object.entries()
1 : 'a',
2 : 'b',
3 : 'c',
}
console.log(Object.entries(obj)) // [ [1,'a'],[2,'b'],[3,'c'] ]
复制代码
16.数据类型
- Number
- String
- Object
- Boolean
- Undefined
- Null
- BigInt (表示大于
2^53 - 1
的整数) - Symbol (表示独一无二的值)
17. ?. 和 ??
- ?. 可选链
const list = [];
if (list?.length) {
console.log("true");
} else {
console.log("false"); //false
}
复制代码
- ?? 空位合并运算符
??
和||
最大的区别是,在??
这,只有undefined和null
才算假值
const a = 0 || "美女"; //美女
const b = "" || "美女"; //美女
const c = false || "美女"; //美女
const d = undefined || "美女"; //美女
const e = null || "美女"; //美女
const a = 0 ?? "美女"; //0
const b = "" ?? "美女"; //
const c = false ?? "美女"; //false
const d = undefined ?? "美女"; //美女
const e = null ?? "美女"; //美女
复制代码
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END