持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第14天,点击查看活动详情
Es2015
- 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的最新动态呀