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
转十进制
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) //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是查找值