ES6(ECMAScipt6)方法与新增特性汇总

ES6(ECMAScipt6)方法与新增特性汇总

概述

ES6是JavaScript语言的下一代标准,最早发布于2015年6月(ES2015),这里的ES6是一个历史名词,泛指ES2015、ES2016、ES2017...

let和const

let与const共同点:

  1. 用法与var 类似都是用来声明变量。
  2. 有块级作用域,只在所在的代码块有效。
  3. 不存在变量提升。
  4. 暂时性死区(在let和const声明语句前调用会报错)。
  5. 不允许重复声明。
  6. 允许在块级作用域声明函数。(ES5版本只能在全局和函数作用域才能声明函数)。

let与const的不同点

  1. let是变量,声明后可以修改值,const是常量,声明后不可修改值(基本类型),并且声明时必须被初始化。

解构赋值

解构赋值就是从数组或对象中提取值,并对变量进行赋值操作。

实例:

let [a, b, c] = [1, 2, 3] // 数组解构赋值
let [a, b, ...c] = [1, 2, 3, 4, 5] // 将多个值赋给c变量
let [a, b = 10, c] = [1, 2, 3] // 给b变量添加默认值
let {name, age} = {name: 'xiaoming', age: 20} // 对象解构赋值
let {name} = {name: 'xiaoming', age: 20} // 只取其中一个
let {name, age: {num}} = {name: 'xiaoming', age: {num: 20, title: 'age'}} // 嵌套数据的解构赋值
let [a, b, c, d] = 'abcd' // 字符串的解构赋值
let {length: len} = 'abcde' // 字符串有个默认的length属性也可以被解构
let {toString: str} = true // 布尔值有toString方法可以被解构
let {toString: str} = 123 // 数值有toString方法可以被解构
function fn([a, b, c]){
  console.log(a, b, c)
}
fn([1,2,3]) // 函数的形参可以被解构

字符串的拓展

字符的Unicode 表示法:支持了超过uFFFF范围的码点(2个字节)

"u0061"
"uD842uDFB7" 

字符串的遍历器接口:for ... of

for (let item of "hello") {
  console.log(item)
}

模版字符串:

let str = 124
let str2 = `num=${str}` // 模版字符串中可以使用 ${}方式添加变量

标签模版:

function fn (x) {
  console.log(x)
}
let str = 'word'
fn `hello` // 打印 [ 'hello' ]
fn `
hello
${str}
` // 换行、添加变量
// 用标签模版可以给函数传参数,传递的参数会被转换成数组类型 

字符串的新增方法

  1. String.fromCodePoint() 从 Unicode 码点返回对应字符,识别码点大于0xFFFF的字符。
  2. String.raw() 模版字符串中的 斜杠会被转移成字符 斜杠,会将所有变量替换。方便进一步对数据的处理。
  3. codePointAt() 返回一个字符的码点,能够正确处理 4 个字节储存的字符。
  4. normaliz() 字母与语调重音符号合并。比如O(u004F)和ˇ(u030C)合成Ǒ(u004Fu030C)
  5. includes() 查找字符串参数并返回布尔值。
  6. startWith() 查找字符串头部参数返回布尔值。
  7. endWith() 查找字符串尾部参数返回布尔值。
  8. repeat(n) 重复n次字符串并返回新字符串。
  9. padStart(lenth, str) 设置指定长度length,长度不够在头部用str字符填充。
  10. padEnd(length, str) 置指定长度length,长度不够在尾部用str字符填充。
  11. trimStart() 消除字符串头部的空格。
  12. trimEnd() 消除字符串尾部的空格。
  13. matchAll() 返回正则的所有匹配项。

后续待更新

原文地址:https://www.cnblogs.com/liea/p/12514980.html