分享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 相关文章推荐
JavaScript 继承详解(三)
Jul 13 Javascript
jQuery中与toggleClass等价的程序段 以及未来学习的方向
Mar 18 Javascript
jquery下动态显示jqGrid以及jqGrid的属性设置容易出现问题的解决方法
Oct 22 Javascript
javascript trim函数在IE下不能用的解决方法
Sep 12 Javascript
JavaScript访问字符串中单个字符的两种方法
Jul 03 Javascript
js判断是否为空和typeof的用法(详解)
Oct 07 Javascript
angular ngClick阻止冒泡使用默认行为的方法
Nov 03 Javascript
BootStrap表单宽度设置方法
Mar 10 Javascript
纯js代码生成可搜索选择下拉列表的实例
Jan 11 Javascript
JS/HTML5游戏常用算法之碰撞检测 包围盒检测算法详解【矩形情况】
Dec 13 Javascript
JavaScript变量提升和严格模式实例分析
Jan 27 Javascript
JavaScript中ES6规范中let和const的用法和区别
Aug 06 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 Memcached应用实现代码
2010/02/08 PHP
简单谈谈 php 文件锁
2017/02/19 PHP
php静态成员方法和静态的成员属性的使用方法
2017/10/26 PHP
php nginx 实时输出的简单实现方法
2018/01/21 PHP
TP5框架安全机制实例分析
2020/04/05 PHP
javascript(jquery)利用函数修改全局变量的代码
2009/11/02 Javascript
javascript修改IMG标签的src问题
2014/03/28 Javascript
使用开源工具制作网页验证码的方法
2016/10/17 Javascript
jquery实现文字单行横移或翻转(上下、左右跳转)
2017/01/08 Javascript
Vue.js原理分析之observer模块详解
2017/02/17 Javascript
node-sass安装失败的原因与解决方法
2017/09/04 Javascript
说说AngularJS中的$parse和$eval的用法
2017/09/14 Javascript
Vue 中使用vue2-highcharts实现曲线数据展示的方法
2018/03/05 Javascript
jQuery实现购物车的总价计算和总价传值功能
2018/11/28 jQuery
微信小程序环境下将文件上传到OSS的方法步骤
2019/05/31 Javascript
微信小程序返回上一页传参并刷新过程解析
2019/12/13 Javascript
Javascript模块化机制实现原理详解
2020/04/02 Javascript
Javascript表单序列化原理及实现代码详解
2020/10/30 Javascript
关于JavaScript中异步/等待的用法与理解
2020/11/18 Javascript
[49:31]TFT vs Mski Supermajor小组赛C组 BO3 第一场 6.3
2018/06/04 DOTA
python创建和删除目录的方法
2015/04/29 Python
详细解读tornado协程(coroutine)原理
2018/01/15 Python
python3.5 tkinter实现页面跳转
2018/01/30 Python
python 实现selenium断言和验证的方法
2019/02/13 Python
Pyqt5如何让QMessageBox按钮显示中文示例代码
2019/04/11 Python
Python实现微信中找回好友、群聊用户撤回的消息功能示例
2019/08/23 Python
Pytorch 数据加载与数据预处理方式
2019/12/31 Python
Pygame的程序开始示例代码
2020/05/07 Python
使用CSS3实现一个3D相册效果实例
2016/12/03 HTML / CSS
公司薪酬管理制度
2014/01/31 职场文书
我的理想演讲稿
2014/04/30 职场文书
电影焦裕禄观后感
2015/06/09 职场文书
初中同学会致辞
2015/08/01 职场文书
公司保密管理制度
2015/08/04 职场文书
血轮眼轮回眼特效 html+css
2021/03/31 HTML / CSS
电脑无法安装Windows 11怎么办?无法安装Win11的解决方法
2021/11/21 数码科技