ES6

2020-07-24  本文已影响0人  李秀成

let 和 const
        let 和 var 类似,但是let 只在所在的代码块内生效,且不存在变量提升。(同一个代码块内只能有一个相同的let 生效,称为暂时性死区)
        而const 声明后,对于原始类型不可修改,对于对象类型,不可修改索引地址。const 声明后必须给与值。
        let 和 const 都不允许重复声明。

块级作用域
        ES5 只有全局作用域 和 函数作用域,ES6新增了块级作用域(原理是let的生效区域)。
        do 表达式可以获取块级作用域返回值。

顶层对象的是属性:
        浏览器环境:window,NODE环境:global 统一用顶层的this 指代,NODE中,this返回的是当前的模块。

解构赋值
        数组的解构赋值
                变量赋值,例:let [a,b,c] = [1,2,3]
                默认值,例:let [x,y=2] = ['a']

        对象的解构赋值
                对象是无序的,所以变量的取值取决于属性名,例子:let {a,b} = { b:1,a :0}

        字符串的解构赋值
                例 : const [a,b,c,d,e] = 'hello'
                字符串属性的赋值,例 :let { length : len } = 'hello' // len = 5

        数字和布尔值的解构赋值
                略

  • 常见使用场景:变量值的交换,函数返回多值,提取JSON 数据,参数的默认值,遍历Map 结构,提取模块的指定方法

字符串的扩展
        codePointAt() 能够正确得处理4个字节存储得字符。(某些时候代替charAt 使用)
        String.fromCodePoint() 代替String.fromCharCode 能够正确得是识别32位得UTF-16字符。
        字符串遍历接口 of
        includes() 返回布尔值,表示是否找到了字符串。
        startsWith(),endWith() 返回布尔值,表示是否在源字符串头部(尾部)找到字符串
        repeat(x) 返回一个新字符串,表示原字符串重复X次
        padStart(num,'ab'),padEnd() 字符串补全,如果字符串长度不够,则在字符串头部(尾部)增加第二个参数直到长度足够
        字符串模板 :姓名:${name}
        标签模板:alert`123` 等同于 alert(123) 可以过滤HTML字符串,防止用户输入恶意内容。
        String.raw() 返回一个反斜杠(\)都被转义得字符串。

正则得扩展
        RegExp(字符串 or 正则表达式,表达式修饰符)
        字符串的正则 match() , replace(), search(), split()
        u 修饰符 用于处理大于\uFFFFFF 的 Unicode 字符串。使用u 修饰符后,所有两次都会被正确得识别码点大于0xFFFF 得 Unicode 字符
        y 修饰符 和g相似,但是y 修饰符每次执行都必须从头开始
        .点字符 表示除换行符意外的任意单字符,点字符必须配合u字符,例:/^.$/u.test(s)
        Unicode 字符表示法 大括号{} 来表示必须配合 u 修饰符,否则会被认为为量词
        sicky 属性,表示是否设置了y 修饰符
        flags 属性,返回正则表达式得修饰符

数字得扩展
        isFinite() 和 isNaN() 分别表示数字是否是有限值和数字是否为NaN。

上一篇下一篇

猜你喜欢

热点阅读