网站首页 > 开源技术 正文
ES6,正式名称是ECMAScript2015,但是ES6这个名称更加简洁。ES6已经不再是JavaScript最新的标准,但是它已经广泛用于编程实践中。如果你还没用过ES6,现在还不算太晚…
下面是10个ES6最佳特性,排名不分先后:
- 函数参数默认值
- 模板字符串
- 多行字符串
- 解构赋值
- 对象属性简写
- 箭头函数
- Promise
- Let与Const
- 类
- 模块化
1. 函数参数默认值
不使用ES6
为函数的参数设置默认值:
这样写一般没问题,但是,当参数的布尔值为false时,是会出事情的!比如,我们这样调用foo函数:
因为0的布尔值为false,这样height的取值将是50。同理color的取值为‘red’。
使用ES6
2. 模板字符串
不使用ES6
使用+号将变量拼接为字符串:
使用ES6
将变量放在大括号之中:
ES6的写法更加简洁、直观。
3. 多行字符串
不使用ES6
使用“\n\t”将多行字符串拼接起来:
使用ES6
将多行字符串放在反引号之间就好了:
4. 解构赋值
不使用ES6
当需要获取某个对象的属性值时,需要单独获取:
使用ES6 可以使用结构赋值
5. 对象属性简写
不使用ES6
对象中必须包含属性和值,显得非常多余:
使用ES6
对象中直接写变量,非常简单:
6. 箭头函数
不使用ES6
普通函数体内的this,指向调用时所在的对象。
使用ES6
箭头函数体内的this,就是定义时所在的对象,而不是调用时所在的对象。
7. Promise
不使用ES6
嵌套两个setTimeout回调函数:
使用ES6
使用两个then是异步编程串行化,避免了回调地狱:
8. Let与Const
使用Var
var定义的变量未函数级作用域:
使用let与const
let定义的变量为块级作用域,因此会报错:
const与let一样,也是块级作用域。
9. 类
不使用ES6
使用构造函数创建对象:
使用ES6
使用Class定义类,更加规范,且你能够继承:
10. 模块化
JavaScript一直没有官方的模块化解决方案,开发者在实践中主要采用CommonJS和AMD规范。而ES6制定了模块(Module)功能。
不使用ES6
Node.js采用CommenJS规范实现了模块化,而前端也可以采用,只是在部署时需要使用Browserify等工具打包。这里不妨介绍一下CommenJS规范。
module.js中使用module.exports导出port变量和getAccounts函数:
main.js中使用require导入module.js:
使用ES6
ES6中使用export与import关键词实现模块化。
module.js中使用export导出port变量和getAccounts函数:
main.js中使用import导入module.js,可以指定需要导入的变量:
也可以将全部变量导入:
猜你喜欢
- 2024-10-16 上手protobuf:一文掌握protobuf的使用
- 2024-10-16 一文读懂微前端架构(微前端的原理)
- 2024-10-16 我对Vue.use() 的简单理解(vue中的use)
- 2024-10-16 一致性、模块化、高性能的 JavaScript 实用工具库
- 2024-10-16 觉得momentJS太笨重,来试试这个库吧
- 2024-10-16 想在线看电影就变的越来越难 优秀开源在线BT免费开源播放器
- 2024-10-16 宇宙厂:如何找到未使用 JS/CSS 并移除?
- 2024-10-16 一个前端的“自我成长”话题(前端如何提升自己)
- 2024-10-16 Facebook发布React v16.0,新旧浏览器都可以尝鲜!
- 2024-10-16 【黄金圆环】在研发领域的实践分享
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- jdk (81)
- putty (66)
- rufus (78)
- 内网穿透 (89)
- okhttp (70)
- powertoys (74)
- windowsterminal (81)
- netcat (65)
- ghostscript (65)
- veracrypt (65)
- asp.netcore (70)
- wrk (67)
- aspose.words (80)
- itk (80)
- ajaxfileupload.js (66)
- sqlhelper (67)
- express.js (67)
- phpmailer (67)
- xjar (70)
- redisclient (78)
- wakeonlan (66)
- tinygo (85)
- startbbs (72)
- webftp (82)
- vsvim (79)
本文暂时没有评论,来添加一个吧(●'◡'●)