ES6新增(一)

234 阅读2分钟

1、let生命的变量不存在变量提升。 2、不可以重复声明。 3、新增了一个作用域,块作用域。let声明的变量在块极作用域内。 4、会形成暂时性死区,只能在声明后试用,声明前使用的代码就是暂时性死区。

const: const关键字定义常量,const定义的变量不可以再次赋值,而且必须在声明时就赋值。const定义引用数据类型的常量,栈里存的指针地址是常量不可以修改,但是堆里对应的具体内容可以修改。

解构赋值:从数组和对象中提取每个值,对变量进行赋值。数组按照索引下标顺序赋值。 对象按key进行赋值,如果不希望用原来的key作为变量名,可以用:x起别名。

    let [a,b,c] = [1,2,3]
    console.log(a,b,c);

结果 1 2 3 字符串的解构:把字符串的每一个字符提取出来分别按顺序赋值。

解构赋值的应用:交换 [x,y]=[y,x]

扩展运算符... 可以将类数组转化成数组。

箭头函数 var fun =()=>{},箭头函数中的this指向的是父作用域中的this,如果父作用域的this改了,他也会一起改。 且箭头函数里不可以使用arguments获取参数,可以使用...rest获取。

扩展运算符的作用: 复制一个数组,可以实现数组的深拷贝

 let array = [1,2,3]
var a1 = [...array];

作为数组的一部分:

let a2 = [...array,'a','b'] 
结果为[1,2,3,a,b]

数组的合并:

    let a3 = [4,5,6]
    let a4 = [...array,...a4] 
    结果为[1,2,3,4,5,6]

字符串扩展 模板字符串:字符串放在中,变量用${}括起来。

    let _start = 0;
    let _count = 10;
    let _url = `https://douban.uieee.com/v2/movie/in_theaters?start=${_start}&count=${_count}`
    console.log(_url);

includes检索字符串,有返回true,没有返回false。 indexof也是检索字符串,但是有返回数组下标,没有返回-1.

startsWith、endsWith 检索参数字符串是否在字符串开头、结尾。

padStart 、padEnd 在字符串开头/结尾补全((新的字符串长度,"要补的字符")),会返回新的字符串

repeat 重复字符串,会返回新的字符串

数值扩展

Number.is Finite判断是否是数字,返回boolean

Number.is NaN判断是否是NaN,返回boolean

Nummber.isInteger 只保留整数部分

Number.parseFloat 保留整数和小数

Math.trunc(1.2) 去掉小数部分,保留整数部分。

Math.sign()判断此数正负,正返回+1,负返回-1,0返回0.

数组: 把类数组转化成数组:Array.from 将一组值转化成数组 :Array.of(4,5,6) ->[4,5,6] filter:过滤掉所有符合条件的内容,返回的是一个数组,数组里是所有符合条件的数。

for of循环数组, keys() 数组的索引 ,values() 值, entries()[index,value]

Object.assign(obj1,obj2,。。。。)把后面的数组融合到obj1中,如果不想改变obj的值,可以[]