ES6入门用法&函数与对象的语法糖
标签:
JavaScript
1. 函数默认参数
如果有下面这个函数
function sum(a, b) { return a+b } sum(1)
输出的是什么呢?
答案是NAN,因为b是undefined,1+undefined就是NAN
如何解决这个问题?
- ES6之前可以这么解决:
function sum(a, b) { a = a || 0 b = b || 0 return a+b } sum(1)
这样就将a和b都设置了一个默认值0
- 有了ES6后可以这么解决:
function sum(a=0, b=0) { return a+b } sum(1)
2. 剩余参数
如果要执行一个多个参数求和的函数,但是不知道参数多少个,在ES6之前是这么写的:
function sum (message) { let result = 0 for(let i=1; i<arguments.length; i++) { result += arguments[i] } return message + result } sum('结果是:', 1,2,3,4,5,6,7,8,9)
ES6之后可以如下写:
function sum (message, ...number) { result = number.reduce((p, v) => p+v, 0) return message + result } sum('结果是:', 1,2,3,4,5,6,7,8,9)
如何将伪数组变成真数组
在ES5最方便的方法是
let args = Array.prototype.slice.call(arguments)
ES6可以这么做
let args = Array.from(arguments)
更方便的方法是
let args = [...arguments]
3. 对象深浅拷贝
浅拷贝:
Object.assign({}, objA)
let objA = { name: { x: 'a' } }let objB = Object.assign({}, objA)
let objA = { name: { x: 'a' } }let objB = {...objA}
深拷贝
JSON.parse(JSON.stringify(data))
条件:
没有复杂对象:如日期对象,正则对象,没有函数,没有循环引用,没有所有普通对象之外的对象
没有undefined
递归
动态的key值可以用中括号括起来
var key = 'x'var value = 'y'var obj = {} obj[key] = valuevar obj = { [key + key] : value }
作者:徐金俊
链接:https://www.jianshu.com/p/2badae5d7bb6
点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦