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=https://www.it610.com/article/{ id:42, status:'ok', data:[456,789] } [id,status,data]=jsonData; id//42

at()
返回字符串给定位置的字符
'abc'.at(0) //a

  • includes() //查询字符串是否存在字符,等同于indexOf()
  • startsWith() //字符是否在字符串头部
  • endsWith() //字符是否在字符串尾部
【ES6新增常用方法】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
转十进制
Number(0b111) //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) //25const 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是查找值

    推荐阅读