那些你不知道的事儿
相比 ECMAScript 6 (也被称为 ECMAScript 2015), ECMAScript 2016在 JavaScript 的语言规范上有小幅度的更新。由于ECMAScript版本会每年一更,effectively just a snapshot of all the features that were ready。有鉴于此,大多数文章仅列出 ECMAScript 2016 中两个显著的变化。
增加了乘幂运算符(**)。
增加了Array.prototype.includes()方法。
这两项功能对JavaScript开发者有着最直接的影响,实际上, ECMAScript 2016 还有一些经常被人忽略的重要更新。在我写的书Understanding ECMAScript 6中有提到这些更新,但是我仍然会收到关于它的一些疑问,所以在这篇文章中,我想深入地探讨一下 ECMAScript 2016 。
首先,我会陈述 ECMAScript 2016 的一些更新,然后再讲讲其背后的理论基础。
更新点
ECMAScript 2016 规定,"use strict"严格模式不允许用于参数具有默认值、使用解构参数或多余参数的函数内部,规范将简单参数定义为仅包含标识符的参数列表(ECMAScript 5 仅支持简单参数列表)[1]. 这一更新会影响所有的函数类型,包括函数声明、函数表达式、箭头函数和对象字面量。以下是一些示例代码。
gulp.task('buildjs2', function() {
return gulp.src(['src/0307/jquery-2.1.4.min.js', 'src/0307/jquery-2.1.4.min.js', 'src/0307/init.js'])
.pipe(concat('main.min.js'))
.pipe(uglify({
mangle: false, //类型:Boolean 默认:true 是否修改变量名
compress: false //类型:Boolean 默认:true 是否完全压缩
}))
.pipe(gulp.dest('./dest/0307'))
.pipe(notify({
message: 'buildjs2 task ok'
}));
});
gulp.task('buildcss2', function() {
return gulp.src(['src/css/laydate.css','src/css/laydate2.css'])
.pipe(concat('laydate.min.css'))
.pipe(minifyCss())
.pipe(gulp.dest('./dest/css'))
.pipe(notify({
message: 'buildcss2 task ok'
}));
});

浙公网安备 33010602011771号