当前位置: 首页 > Web前端 > HTML5

EverestTrainingES6学习笔记1

时间:2023-04-05 01:45:01 HTML5

let和constvar关键字定义变量:可以重复定义不能定义常量不支持块级作用域let的特性不能重复定义变量不能被提升,不能在前面使用variableisdefined花括号定义的变量(块级作用域内)不能在作用域外访问,解决ES5中一些需要闭包实现的功能,例如:每1秒输出一个当前值const。特征常数一旦定义,就不能修改。如果常量的值是引用类型,引用对象的属性仍然可以被修改。结构赋值ES6允许你从数组和对象中提取值,并按照一定的模式为变量赋值。这称为结构。letarr=[1,2,3];let[a,b,c]=arr;let[,,m]=arr;//m=3let[d,...e]=arr;//d=1//e=[2,3]let[f,g,...h]=[1];//f=1//g=undefined//h=[]letobj={name:"mmcai",age:28,long:165}let{name,age,long}=obj;//name="mmcai"//age=28//long=165let{name:myName,age:myAge}=obj;//myName="mmcai"//myAge=28let{name,...O}=obj;//name="mmcai"//O={age:28,long:165}特征可以通过"patternmatching""的写法是从数组或对象中提取一个值,直接赋值给一个变量,不完全解构。等号左边的pattern只匹配右边解构赋值的一部分。可以指定一个默认值,如果从等号右边取的值为undefined,则使用指定的默认值。数组的解构赋值必须完全按照数组的顺序取。object如果等号右边是Boolean或者value,则不需要转成object字符串,也可以进行结构体赋值。String结构体赋值时,对象函数的参数当做数组处理,也可以使用解构默认赋值,经常设置默认值。没有参数时,直接使用默认值。以下三个解构赋值不能使用括号。变量生命语句函数参数的模式赋值语句交换变量的值从函数返回多个值函数参数的定义提取JSON数据函数参数的默认值循环遍历Map结构输入模块指定方法String字符串扩展字符Unicode表示使用for...of循环遍历string,ES6string增加了遍历器接口Iterator模板字符串,ES6自带模板解析引擎模板字符串后面可以直接跟函数名,会调用函数处理模板字符串templatestring在ES6中,字符串用反引号标示(`),字符串中的嵌入变量可以通过${}添加,例如:const{name,age}={name:"mmcai",age:28}conststr=`IMyfirstnameis${name},我的年份是${年龄}老`;模板字符串其实就是ES6本身自带的模板引擎,用来解析特殊的内容。一般原则如下:letcompile=(desc){returndesc.replace(/\$\{([^}]+)\}/g,(matched,key)=>{returneval(key);}}模板字符串使用`标记,使用${}包含内嵌变量模板字符串可以换行当我们需要自定义模板引擎时,可以使用标签模板实现通过函数includes添加字符串的方法——判断一个字符串是否包含某个字符串,返回一个布尔值startsWith——字符串头部是否有某个字符串,返回布尔值endsWith——字符串末尾是否有某个字符串,返回布尔值repeat——返回一个重复n次的新字符串trimStart——消除字符串头部的空格trimEnd——消除末尾的空格padStart——从头补全字符串padEnd——补齐从头开始的字符串结束