ES2015的常用新特性总结

101 阅读3分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第14天,点击查看活动详情

Es2015

image.png

  • let、const 声明的块级作用域
let a= 5
const d = 6
{
let c = 7
}

-函数形参的默认值,假如有多个参数,带有默认参数的需要放在后面

function getName (name = 'zhangsan') {
    return name
}
  • 箭头函数,如果只有return语句,可以省略花括号和return,箭头函数会绑定执行期上下文
let a = () => {}
let a = (x) => x
  • 支持2进制,8进制和16进制数表示 0b1 0o7 0x12

  • 为Number扩展的属性和方法如下

属性/方法名描述
Number.EPSILON数值最小精度
Number.MIN_SAFE_INTEGER最小安全数(-2^53)
Number.MAX_SAFE_INTEGER最大安全数(2^53)
Number.parseInt()把参数解析为整数并返回
Number.parseFloat()把参数解析为浮点数并返回
Number.isFinite()判断是否为有限数值
Number.isNaN()判断是否为NaN
Number.isInteger()判断是否为整数
Number.isSafeInteger()判断数值是否在安全范围内
  • 为Math扩展的方法如下
方法名描述
Math.trunc()返回数值整数部分
Math.sign()返回数值类型(正数1、负数-1、零0)
  • 模板字符串,支持变量,语法为${}
let xtemp = '白送一锅粥'
let xstr = `我的名字是 ${xtemp}`

-* String原型和String实例的扩展*

方法名描述
String.fromCodePoint()用于从 Unicode 码点返回对应字符
String.raw()返回一个斜杠都被转义(即斜杠前面再加一个斜杠)的字符串,往往用于模板字符串的处理方法。
String.prototype.codePointAt()返回字符对应码点(String.fromCodePoint()的逆操作)
String.prototype.normalize()把字符的不同表示方法统一为同样形式,返回新字符串(Unicode正规化)
String.prototype.repeat()把字符串重复n次,返回处理后的字符串
String.prototype.includes()判断是否存在指定字符串
String.prototype.startsWith()判断字符串是否存在原始字符串的头部
String.prototype.endsWith()判断字符串是否存在原始字符串的尾部
  • 对象扩展运算符...
let arr = [1,2,3]
let arr1 = [...arr, 4,5,6]
  • Array扩展的方法
方法名描述
Array.from()将类数组结构转化为数组,返回一个数组,可以使用数组身上的方法,比如,HTMLCollection转Array
Array.of()创建一个具有可变数量参数的新数组实例, 比如 Array.of(1,true, 'zhangsan')
Array.includes()判断是否包含某个元素
  • 模块化
    • 下面的导出某个特定对象,引入某个特定对象
export xx
import {xx} from 'xx'
    • 默认导出某个对象
export default xx
import xx from xx
  • 解构赋值 从一个对象中以key的形式,声明同名key的变量,也可以通过 as 关键字,声明别名
let aa = {name: '张三',age: 8}
// 解构赋值
let {name as myName, age} = aa
  • Promise

提供了thenable的调用方式,从回调嵌套回调的写法中解放出来

// 旧的写法
function asyncFunc (callback) {
....
callbak()
}
asyncFunc(function aa (call) {
.....
call()
})
// 新的写法
function asyncFunc () {
    return new Promise((resolve,reject) => {
    ...
    resovle()
    ....
    reject()

})
}
asyncFunc().then(...).catch(...)
  • Set

最常见的就是数组去重

let arr = [1,1,1,2,2,4,5]
arr = Array.from(new Set(arr)) // [1,2,4,5]

总结

ES6的特性还有很多,但是我们比较常用的就是上面这些了,先进的方法代表了先进的生产力,ES6结合polyfill,可以提升我们代码的健壮性,提高开发效率,所以,一定要多关注tc39的最新动态呀