0
点赞
收藏
分享

微信扫一扫

ES6查漏补缺

IT程序员 2022-03-12 阅读 67

ES6查漏补缺

1. let 和const 命令

  • 不存在变量提升
    在这里插入图片描述

  • let 是块级作用域,只要块级作用域内存在let命令,它所声明的变量就“绑定”(binding)这个区域,不再受外部的影响
    在这里插入图片描述
    const命令同样适用

  • let不允许在相同作用域内,重复声明同一个变量
    在这里插入图片描述
    在这里插入图片描述

重点: let实际上为 JavaScript 新增了块级作用域,即外层代码块不受内层代码块的影响

  • 块级作用域内部,优先使用函数表达式
    在这里插入图片描述
  • const声明一个只读的常量。一旦声明,常量的值就不能改变;const一旦声明变量,就必须立即初始化,不能留到以后赋值,只声明不赋值,就会报错。
  • var命令和function命令声明的全局变量,依旧是顶层对象的属性;另一方面规定,let命令、const命令、class命令声明的全局变量,不属于顶层对象的属性。也就是说,从 ES6 开始,全局变量将逐步与顶层对象的属性脱钩。
    在这里插入图片描述

2. 数组的解构赋值

  • 只要等号两边的模式相同,左边的变量就会被赋予对应的值
    在这里插入图片描述
  • 不完全解构,即等号左边的模式,只匹配一部分的等号右边的数组
    在这里插入图片描述
  • 解构赋值允许指定默认值
    在这里插入图片描述
对象的解构赋值
  • 对象的解构与数组有一个重要的不同。数组的元素是按次序排列的,变量的取值由它的位置决定;而对象的属性没有次序,变量必须与属性同名,才能取到正确的值
    在这里插入图片描述
  • 解构后重命名 XXX:XX
    在这里插入图片描述
  • 对象的解构也可以指定默认值
    在这里插入图片描述
  • 如果要将一个已经声明的变量用于解构赋值,必须非常小心
    在这里插入图片描述
    上面代码将整个解构赋值语句,放在一个圆括号里面,就可以正确执行
字符串的解构赋值
  • 字符串也可以解构赋值。这是因为此时,字符串被转换成了一个类似数组的对象
    在这里插入图片描述

  • 类似数组的对象都有一个length属性,因此还可以对这个属性解构赋值
    在这里插入图片描述

变量的解构赋值用途
  • 交换变量的值
    在这里插入图片描述

  • 从函数返回多个值
    在这里插入图片描述

  • 函数参数的定义,解构赋值可以方便地将一组参数与变量名对应起来
    在这里插入图片描述


3.模板字符串

`xxx ${变量}  xxxx` 

4. 字符串新增的方法

  • includes():返回布尔值,表示是否找到了参数字符串。
  • startsWith():返回布尔值,表示参数字符串是否在原字符串的头部。
  • endsWith():返回布尔值,表示参数字符串是否在原字符串的尾部。
    在这里插入图片描述
    这三个方法都支持第二个参数,表示开始搜索的位置
    在这里插入图片描述
  • repeat方法返回一个新字符串,表示将原字符串重复n次
    在这里插入图片描述
  • replaceAll()方法,可以一次性替换所有匹配,返回一个新字符串,不会改变原字符串
    在这里插入图片描述

5. 数值的扩展

  • ES6 提供了二进制和八进制数值的新的写法,分别用前缀0b(或0B)和0o(或0O)表示
    在这里插入图片描述
    如果要将0b和0o前缀的字符串数值转为十进制,要使用Number方法
    在这里插入图片描述

  • 数值分隔符

在这里插入图片描述

  • Number.isFinite()用来检查一个数值是否为有限的(finite),即不是Infinity
    在这里插入图片描述

  • Number.isNaN()用来检查一个值是否为NaN
    在这里插入图片描述

  • ES6 将全局方法parseInt()和parseFloat(),移植到Number对象上面,行为完全保持不变
    在这里插入图片描述

  • ES6 在 Math 对象上新增了 17 个与数学相关的方法。所有这些方法都是静态方法,只能在 Math 对象上调用

  • ES2020 引入了一种新的数据类型 BigInt(大整数),来解决这个问题,这是 ECMAScript 的第八种数据类型。BigInt 只用来表示整数,没有位数的限制,任何位数的整数都可以精确表示。

6. 函数的扩展

  • ES6 允许为函数的参数设置默认值,即直接写在参数定义的后
    在这里插入图片描述
  • 函数的 length 属性
  • 作用域

在这里插入图片描述

  • 利用参数默认值,可以指定某一个参数不得省略
    在这里插入图片描述
  • rest 参数
  • ES6 允许使用“箭头”(=>)定义函数
    在这里插入图片描述
  • try catch语句
try{ 
 // 可能会导致错误的代码
} catch(error){ 
 // 在错误发生时怎么处理
} 

//虽然在 try-catch 语句中是可选的,但 finally 子句一经使用,
其代码无论如何都会执行
function testFinally(){ 
    try { 
        return 2; 
    } catch (error){ 
        return 1; 
    } finally { 
        return 0; 
    } 
}
//调用这个函数只能返回 0。
//如果把 finally 子句拿掉,这个函数将返回 2

7. 数组的扩展

  • 扩展运算符
  • Array.from()
  • entries(),keys() 和 values()
  • flat()
  • 数组的空位

8. 对象的扩展

  • 1.属性的简洁表示法
  • 2.属性名表达式
  • 3.属性的遍历

9. 运算符的扩展

  • 1.指数运算符 (**)
  • 2.Null 判断运算符

10.Promise 对象

  • 1.Promise 的含义
  • 2.基本用法
  • 3.then()链式调用
  • 4.catch()
  • 5.finally()方法用于指定不管 Promise 对象最后状态如何,都会执行的操作
  • 6.Promise.all()方法用于将多个 Promise 实例,包装成一个新的 Promise 实例

11.async 函数

  • 1.基本用法
  • 2.async 函数有多种使用形式
  • 3.async函数返回一个 Promise 对象;async函数内部return语句返回的值,会成为then方法回调函数的参数
  • 4.await命令
  • 5.使用注意

12.Class 的基本语法

  • 1.类的由来

*类的数据类型就是函数,类本身就指向构造函数

  • 2.constructor()方法
  • 3.类的实例
  • 4.属性表达式
  • 5.Class 表达式
  • 6.注意点
  • 7.静态方法
  • 8.实例属性的新写法
  • 9.私有方法和私有属性

13.Class 的继承

  • 1.extends关键字
  • 2.Object.getPrototypeOf()
  • 3.super 关键字
  • 4.类的 prototype 属性和__proto__属性

原型链

在这里插入图片描述
在这里插入图片描述

13. Module 的语法

  • 1.ES6 的模块自动采用严格模式
    在这里插入图片描述
  • 2.export 命令
  • 3.基本写法
  • 4.import
举报

相关推荐

ES6查漏补缺【字符串的扩展】

vue 查漏补缺

Java基础查漏补缺

查漏补缺-冲冲冲

C语言——查漏补缺

项目重温 _ 查漏补缺

java查漏补缺(1)

0 条评论