数值
1、Number.isFinite()
判断参数是否为有限的数值
2、Number.isNaN()
判断括号里面的参数是否是NaN
3、取小数 Number.parseFloat()
Number.parseFloat('3.1415926hello') //3.1415926
4、取整数 Number.parseInt()
Number.parseInt('3.1415926hello') //3
5、去小数取整数 Math.trunc()
Math.trunc('3.1415926') //3
6、 Number.isInteger()
Number.isInteger()一般情况可用来判断一个数值是否为整数。
函数
1、箭头函数
1、如果只有一个参数数,()可省
2、 如果箭头函数只有一行语句,且不需要返回值,{}可省
var sum=sum=>sum+1;
sum(2) //3
//{}可省
let sum = (a, b) =>(a+b)*b
sum(3, 8) //88
//都不可省
let sum = (a, b) =>{
a=a+b;
return a*b
}
sum(3, 8) //88
数组
1、运算符扩展
function add(x, y) {
return x + y;
}
const numbers = [1, 3];
add(...numbers) // 4
2、合并数组
const arr1 = ['a'];
const arr2 = [ 'b','c'];
const arr3 = ['d', 'e','f'];
const arr=[...arr1, ...arr2, ...arr3]; // [ 'a', 'b', 'c', 'd', 'e','f' ]
3、解构赋值
const [first, ...rest] = [1, 2, 3, 4, 5];
//console.log(first) //1
//console.log(rest) //2,3,4,5
4、字符串转数组
方法一、
var str='hello'
const arr= [...str] //["h", "e", "l", "l", "o"]
方法二、
Array.from('hello') // ['h', 'e', 'l', 'l', 'o']
5、数值转数组 Array.of()
Array.of(1, 2, 3) // [1, 2, 3]
6、Map结构
let map = new Map([
[1, 'one'],
[2, 'two'],
[3, 'three'],
]);
let arr = [...map.keys()]; // [1, 2, 3]
let arr1 = [...map.values()]; //["one", "two", "three"]
map映射(一个对一个)
var arr=[1,2,3]
let sum=arr.map(item=>item*2)
console.log(sum) //[2, 4, 6]
7、forEach循环遍历
let arr=[1,2]
arr.forEach((item,index)=>console.log(index+':'+item*item))
//0:1
//1:4
8、reduce 求和
let arr=[1,2,3,4];
let result=arr.reduce((tmp,item,index)=>tmp+item)
//console.log(result) //10
reduce 求平均数
let arr=[1,2,3,4];
let result=arr.reduce(function(tmp,item,index){
if(index!=arr.length-1){
return tmp+item
}else{
return (tmp+item)%arr.length;
}
})
//console.log(result) //2
9、filter 过滤器
let arr=[11,12,13,14,15];
let result=arr.filter(item=>{
if(item%3==0){
return true
}else{
return false
}
})
//console.log(result) //[12, 15]
10、sort 排序
倒序(大=>小)
let arr=[1,2,3,4,5];
let result=arr.sort((x,y)=>{
return y-x
})
//console.log(result) //[5, 4, 3, 2, 1]
正序(小=>大)
let arr=[1,2,3,4,5];
let result=arr.sort((x,y)=>{
return x-y
})
//console.log(result) //[1, 2, 3, 4, 5]
对象扩展与新增方法
1、属性简写
const tmp='hello';
const shell={tmp}
//console.log(shell) //{tmp: "hello"}
//属性简写 用于函数返回
function fn(){
const x=1;
const y=2;
return {x,y}
}
//console.log(fn()) //{x: 1, y: 2}
2、对象属性遍历
for…in
let obj={'0':'a','1':'b','2':'c'}
let arr=[];
for (let i in obj) {
arr.push(obj[i])
}
// console.log(arr) // ["a", "b", "c"]
Object.keys(obj)
let obj={'0':'a','1':'b','2':'c'}
let arr=Object.keys(obj)
// console.log(arr) // ["0", "1", "2"]
3、新增 Object.is(obj1,obj2)
功能与“===”类似(不同之处:一是+0不等于-0,二是NaN等于自身)
Object.is('hello','hello') //true
4、合并对象Object.assign(obj1,obj2)
const obj1={a:1};
const obj2={b:2};
const obj=Object.assign(obj1,obj2)
console.log(obj) //{a:1, b:2}
同名属性,后面的覆盖前面的
const obj1={a:1};
const obj2={b:2};
const obj3={b:6};
const obj=Object.assign(obj1,obj2 ,obj3)
console.log(obj) //{a: 1, b: 6}
未完待续