分享ES6的7个实用技巧


Posted in Javascript onJanuary 18, 2018

Hack #1 交换元素

利用 数组解构来实现值的互换

let a = 'world', b = 'hello'
[a, b] = [b, a]
console.log(a) // -> hello
console.log(b) // -> world

Hack #2 调试

我们经常使用 console.log()来进行调试,试试 console.table()也无妨。

const a = 5, b = 6, c = 7
console.log({ a, b, c });
console.table({a, b, c, m: {name: 'xixi', age: 27}});

Hack #3 单条语句

ES6时代,操作数组的语句将会更加的紧凑

// 寻找数组中的最大值
const max = (arr) => Math.max(...arr);
max([123, 321, 32]) // outputs: 321
// 计算数组的总和
const sum = (arr) => arr.reduce((a, b) => (a + b), 0)
sum([1, 2, 3, 4]) // output: 10

Hack #4 数组拼接

展开运算符可以取代 concat的地位了

const one = ['a', 'b', 'c']
const two = ['d', 'e', 'f']
const three = ['g', 'h', 'i']
const result = [...one, ...two, ...three]

Hack #5 制作副本

我们可以很容易的实现数组和对象的 浅拷贝

const obj = { ...oldObj }
const arr = [ ...oldArr ]

Hack #6 命名参数???

解构使得函数声明和函数的调用更加可读

// 我们尝尝使用的写法
const getStuffNotBad = (id, force, verbose) => {
 ...do stuff
}
// 当我们调用函数时, 明天再看,尼玛 150是啥,true是啥
getStuffNotBad(150, true, true)
// 看完本文你啥都可以忘记, 希望够记住下面的就可以了
const getStuffAwesome = ({id, name, force, verbose}) => {
 ...do stuff
}
// 完美
getStuffAwesome({ id: 150, force: true, verbose: true })

Hack #7 Async/Await结合数组解构

数组解构非常赞!结合 Promise.all和 解构和 await会使代码变得更加的简洁

const [user, account] = await Promise.all([
 fetch('/user'),
 fetch('/account')
])

总结

以上所述是小编给大家介绍的分享ES6的7个实用技巧,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
prototype 源码中文说明之 prototype.js
Sep 22 Javascript
完美解决JS中汉字显示乱码问题(已解决)
Dec 27 Javascript
window.open打开页面居中显示的示例代码
Dec 27 Javascript
整理JavaScript创建对象的八种方法
Nov 03 Javascript
javascript 中的事件委托详解
Oct 25 Javascript
js 博客内容进度插件详解
Feb 19 Javascript
jQuery实现获取h1-h6标题元素值的方法
Mar 06 Javascript
微信小程序下拉刷新界面的实现
Sep 28 Javascript
vue自定义全局组件(自定义插件)的用法
Jan 30 Javascript
vue框架下部署上线后刷新报404问题的解决方案(推荐)
Apr 03 Javascript
基于node+vue实现简单的WebSocket聊天功能
Feb 01 Javascript
原生javascript单例模式的应用实例分析
Feb 23 Javascript
vue 动态修改a标签的样式的方法
Jan 18 #Javascript
详解vue-meta如何让你更优雅的管理头部标签
Jan 18 #Javascript
Nuxt.js踩坑总结分享
Jan 18 #Javascript
Nuxt.js实战详解
Jan 18 #Javascript
React Native 真机断点调试+跨域资源加载出错问题的解决方法
Jan 18 #Javascript
ajax请求data遇到的问题分析
Jan 18 #Javascript
angular.js和vue.js中实现函数去抖示例(debounce)
Jan 18 #Javascript
You might like
php密码生成类实例
2014/09/24 PHP
Ubuntu下安装PHP的mongodb扩展操作命令
2015/07/04 PHP
PDO操作MySQL的基础教程(推荐)
2017/08/18 PHP
深入理解PHP的远程多会话调试
2017/09/21 PHP
用倒置滤镜把div倒置,再把table倒置。
2007/07/31 Javascript
javascript 图片上传预览-兼容标准
2009/06/01 Javascript
javascript Array.prototype.slice的使用示例
2013/11/14 Javascript
javascript使用prototype完成单继承
2014/12/24 Javascript
详谈jQuery操纵DOM元素属性 attr()和removeAtrr()方法
2015/01/22 Javascript
JQuery select(下拉框)操作方法汇总
2015/04/15 Javascript
浅谈$(document)和$(window)的区别
2015/07/15 Javascript
JavaScript 常见安全漏洞和自动化检测技术
2015/08/21 Javascript
JS中使用apply、bind实现为函数或者类传入动态个数的参数
2016/04/26 Javascript
jQuery Masonry瀑布流插件使用方法详解
2017/01/18 Javascript
JS伪继承prototype实现方法示例
2018/06/20 Javascript
解决axios发送post请求返回400状态码的问题
2018/08/11 Javascript
Vue使用Clipboard.JS在h5页面中复制内容实例详解
2019/09/03 Javascript
JavaScript this关键字指向常用情况解析
2020/09/02 Javascript
解决Vue keep-alive 调用 $destory() 页面不再被缓存的情况
2020/10/30 Javascript
JavaScript前后端JSON使用方法教程
2020/11/23 Javascript
[05:08]2014DOTA2国际邀请赛 Hao专访复仇的胜利很爽
2014/07/15 DOTA
[55:25]VGJ.T vs Optic Supermajor小组赛D组 BO3 第三场 6.3
2018/06/04 DOTA
[53:38]OG vs LGD 2018国际邀请赛淘汰赛BO3 第三场 8.26
2018/08/30 DOTA
Python中文编码那些事
2014/06/25 Python
python基于twisted框架编写简单聊天室
2018/01/02 Python
使用python读取txt文件的内容,并删除重复的行数方法
2018/04/18 Python
详解基于Scrapy的IP代理池搭建
2020/09/29 Python
CSS3实现时间轴特效
2020/11/02 HTML / CSS
浅谈基于HTML5的在线视频播放方案
2016/02/18 HTML / CSS
公司授权委托书格式样本
2014/10/01 职场文书
党政领导班子四风问题对照检查材料思想汇报
2014/10/02 职场文书
颐和园导游词400字
2015/01/30 职场文书
挂职锻炼工作总结2015
2015/05/28 职场文书
2016开学第一课心得体会
2016/01/23 职场文书
关于Spring配置文件加载方式变化引发的异常详解
2022/01/18 Java/Android
Python使用DFA算法过滤内容敏感词
2022/04/22 Python