ES6新增常用方法

let

//1.在块级作用域内部有效
//2.for循环中循环变量部分和循环体内部是不同作用域
//3.let不存在变量提升,先声明后使用,否则报错
//4.块级作用域内只要存在let,所生命的变量就『绑定』这个区域,不受外界影响
var a=[];
for (let i=1;i<10;i++){
    a[i]=function(){
    console.log(i)
}}
a[6]();  //6

块级作用域与函数声明
- 允许在块级作用域内声明函数
- 函数声明类似于var,会提升到作用域头部

const

声明只读常量

解构

let x=1;
let y=2;
[x,y]=[y,x];
x //2
y //1
  • 解构提取JSON
let jsonData={
    id:42,
    status:'ok',
    data:[456,789]
}
[id,status,data]=jsonData;
id  //42

at()

返回字符串给定位置的字符

'abc'.at(0) //a
  • includes() //查询字符串是否存在字符,等同于indexOf()
  • startsWith() //字符是否在字符串头部
  • endsWith() //字符是否在字符串尾部

repeat(n)

字符重复n次

'x'.repeat(3) //'xxx'

padStart(),padEnd()

补全字符串,头部补全、尾部补全

'x'.padStart(5,'ab') //ababx
'x'.padEnd(4,'ab') //xaba

字符串拼接“

“中的变量+ins.count+改为 ${ins.count} 大括号内可以放表达式或变量

let str='(name)=>`Hello!${name}`'
let func=eval.call(null,str)
func('JACK')  //Hello!JACK

String.raw()

将字符串中反斜线转义 若已被转义 则返回原字符

二进制和八进制数值表示
0b 0o

转十进制

Number0b111) //7

Math对象扩展

Math.trunc() 去除小数部分 返回整数

Math.sign() 判断正负0 返回+1 -1 0 NaN

Math.cbrt() 开立方根

Math.hypot() 返回所有参数平方和的平方根

Math.expm1() 对数

Math.log1p(x) 即ln(1+x)

Math.log10()

Math.log2()

Math.expm1(x)= e^x-1

函数

//定义默认值 参数y可省略

function log(x,y='world'){
    console.log(x,y);
}
log('hello'); //hello,world
log('hello','');  //hello,

rest参数

function add(...values){
    let sums=0;
    for(var val of values){
        sum+=val;
    }
    return sums;
}

add(1,2,5);  //8

rest参数代替arguments对象,只能是最后一个参数

箭头函数

let f=v=>v
//相当于
let f=function(v){
    return v;
}
f(5) //5

工具函数

const square=n=>n*n
square(5) //25

const isEven=n=>n%2==0;
isEven(5) //false
isEven(6) //true

排序

var values=[1,5,3,7]
values.sort((a,b)=>b-a) //[7,5,3,1]

箭头函数与rest参数结合

var numbers=(...nums)=>nums
numbers(1,2,5,7) //[1,2,5,7]

  • 箭头函数中this的指向问题

    函数体内的this对象是定义时所在的对象 而不是使用时所在的对象
    箭头函数中this的指向是固定的

    箭头函数自身没有this

  • 不可new
  • 不可使用argument对象 要用可以用rest参数代替
  • 不能用作Generator函数

Math.max()最大值

Array.of() 将一组值转化为数组

Array.from() 将类数组对象与可遍历对象转换为数组

数组find() findIndex()

返回第一个满足条件的数/位置

[1,3,-5,10].find((n)=>n<0)  //-5
[1,3,-5,10].findIndex(n=>n<0)  //2

数组遍历 entries() keys() values()

keys()键名 values()键值 entries() 键值对

includes() 查询值是否存在于数组中

需要与map中的has和set中的has分开

map中has是查键名 set的has是查找值

猜你喜欢

转载自blog.csdn.net/weixin_42042680/article/details/80084277