es6基础知识总结(附加)
附加:
字符串扩展:
1. includes(str) : 判断是否包含指定的字符串
2. startsWith(str) : 判断是否以指定字符串开头
3. endsWith(str) : 判断是否以指定字符串结尾
4. repeat(count) : 重复指定次数
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 let str = 'abcdefg'; 2 console.log(str.includes('a'));//true 3 console.log(str.includes('h'));//false 4 5 //startsWith(str) : 判断是否以指定字符串开头 6 console.log(str.startsWith('a'));//true 7 console.log(str.startsWith('d'));//false 8 //endsWith(str) : 判断是否以指定字符串结尾 9 console.log(str.endsWith('g'));//true 10 console.log(str.endsWith('d'));//false 11 //repeat(count) : 重复指定次数a 12 console.log(str.repeat(5));
数值扩展
1. 二进制与八进制数值表示法: 二进制用0b, 八进制用0o
2. Number.isFinite(i) : 判断是否是有限大的数
3. Number.isNaN(i) : 判断是否是NaN
4. Number.isInteger(i) : 判断是否是整数
5. Number.parseInt(str) : 将字符串转换为对应的数值
6. Math.trunc(i) : 直接去除小数部分
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 console.log(0b1010);//10 2 console.log(0o56);//46 3 //Number.isFinite(i) : 判断是否是有限大的数 4 console.log(Number.isFinite(NaN));//false 5 console.log(Number.isFinite(5));//true 6 //Number.isNaN(i) : 判断是否是NaN 7 console.log(Number.isNaN(NaN));//true 8 console.log(Number.isNaN(5));//falsse 9 10 //Number.isInteger(i) : 判断是否是整数 11 console.log(Number.isInteger(5.23));//false 12 console.log(Number.isInteger(5.0));//true 13 console.log(Number.isInteger(5));//true 14 15 //Number.parseInt(str) : 将字符串转换为对应的数值 16 console.log(Number.parseInt('123abc'));//123 17 console.log(Number.parseInt('a123abc'));//NaN 18 19 // Math.trunc(i) : 直接去除小数部分 20 console.log(Math.trunc(13.123));//13
数组扩展
1. Array.from(v) : 将伪数组对象或可遍历对象转换为真数组
2. Array.of(v1, v2, v3) : 将一系列值转换成数组
3. find(function(value, index, arr){return true}) : 找出第一个满足条件返回true的元素
4. findIndex(function(value, index, arr){return true}) : 找出第一个满足条件返回true的元素下标
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 //Array.from(v) : 将伪数组对象或可遍历对象转换为真数组 2 let btns = document.getElementsByTagName('button'); 3 console.log(btns.length);//3 4 Array.from(btns).forEach(function (item, index) { 5 console.log(item, index); 6 }); 7 //Array.of(v1, v2, v3) : 将一系列值转换成数组 8 let arr = Array.of(1, 'abc', true); 9 console.log(arr); 10 //find(function(value, index, arr){return true}) : 找出第一个满足条件返回true的元素 11 let arr1 = [1,3,5,2,6,7,3]; 12 let result = arr1.find(function (item, index) { 13 return item >3 14 }); 15 console.log(result);//5 16 //findIndex(function(value, index, arr){return true}) : 找出第一个满足条件返回true的元素下标 17 let result1 = arr1.findIndex(function (item, index) { 18 return item >3 19 }); 20 console.log(result1);//2
对象扩展
1. Object.is(v1, v2)
* 判断2个数据是否完全相等
2. Object.assign(target, source1, source2..)
* 将源对象的属性复制到目标对象上
3. 直接操作 __proto__ 属性
let obj2 = {};
obj2.__proto__ = obj1;
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 console.log(Object.is('abc', 'abc'));//true 2 console.log(NaN == NaN);//false 3 console.log(Object.is(NaN, NaN));//true 4 5 console.log(0 == -0);//true 6 console.log(Object.is(0, -0));//false 7 8 //Object.assign(target, source1, source2..) 9 let obj = {name : 'kobe', age : 39, c: {d: 2}}; 10 let obj1 = {}; 11 Object.assign(obj1, obj); 12 console.log(obj1, obj1.name); 13 14 //直接操作 __proto__ 属性 15 let obj3 = {name : 'anverson', age : 41}; 16 let obj4 = {}; 17 obj4.__proto__ = obj3; 18 console.log(obj4, obj4.name, obj4.age);
Set和Map数据结构
1. Set容器 : 无序不可重复的多个value的集合体
* Set()
* Set(array)
* add(value)
* delete(value)
* has(value)
* clear()
* size
2. Map容器 : 无序的 key不重复的多个key-value的集合体
* Map()
* Map(array)
* set(key, value)//添加
* get(key)
* delete(key)
* has(key)
* clear()
* size
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 let set = new Set([1,2,3,4,3,2,1,6]); 2 console.log(set); 3 set.add('abc'); 4 console.log(set, set.size); 5 //delete(value) 6 set.delete(2); 7 console.log(set); 8 //has(value) 9 console.log(set.has(2));//false 10 console.log(set.has(1));//true 11 //clear() 12 set.clear(); 13 console.log(set); 14 15 let map = new Map([['abc', 12],[25, 'age']]); 16 console.log(map); 17 map.set('男', '性别'); 18 console.log(map); 19 console.log(map.get(25));//age 20 //delete(key) 21 map.delete('男'); 22 console.log(map); 23 console.log(map.has('男'));//false 24 console.log(map.has('abc'));//true 25 map.clear(); 26 console.log(map);
for_of循环
for(let value of target){}循环遍历
1. 遍历数组
2. 遍历Set
3. 遍历Map
4. 遍历字符串
5. 遍历伪数组
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 let arr = [1,2,3,4,5]; 2 for(let num of arr){ 3 console.log(num); 4 } 5 let set = new Set([1,2,3,4,5]); 6 for(let num of set){ 7 console.log(num); 8 } 9 let str = 'abcdefg'; 10 for(let num of str){ 11 console.log(num); 12 } 13 let btns = document.getElementsByTagName('button'); 14 for(let btn of btns){ 15 console.log(btn.innerHTML); 16 }