javascript新语法
Js 第三阶段的新语法
主要介绍 2 个处于 Statge 3 的新语法,目前该语法可以使用 babel 插件进行使用。这两个新语法分别是:
- proposal-optional-chaining
- proposal-nullish-coalescing
proposal-optional-chaining
TC39 - 提案 地址: https://github.com/tc39/proposal-optional-chaining
1 | const a = { |
旧语法 取值
1 | const eValue = a && a.b && a.b.c && a.b.c.d && a.b.c.d.e ? a.b.c.d.e : "--"; |
新语法 取值
1 | const eValue = a.b?.c?.e || "--"; |
小结
以 “极少、完美、可阅读” 的代码量,实现了最完美的深度取值的问题。可是观察上面的代码方案时,还是不够完美。如果某个用户的余额就是 0 的化,那么岂不是界面上展示的是 “–”。不科学、不科学,继续阅读,揭开疑惑!
proposal-nullish-coalescing
TC39 - 提案 地址: https://github.com/tc39/proposal-nullish-coalescing
1 | const a = { |
旧语法 显示余额为 0
1 | const eValue = a.b?.c?.d?.e === 0 ? 0 : a.b?.c?.d?.e; |
新语法 显示余额为 0
1 | const eValue = a.b?.c?.d?.e ?? 0; |
如何接到已有的项目中
- 升级 eslint-loader 因为低版本的不支持新语法检查
- 升级为 babel7
- 安装 babel
安装 Babel 插件
@babel/plugin-proposal-optional-chaining
@babel/plugin-proposal-nullish-coalescing-operator