亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

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. 对象深浅拷贝

浅拷贝:

  1. 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))

条件:

  1. 没有复杂对象:如日期对象,正则对象,没有函数,没有循环引用,没有所有普通对象之外的对象

  2. 没有undefined

  • 递归


动态的key值可以用中括号括起来

var key = 'x'var value  = 'y'var obj = {}
obj[key] = valuevar obj = {
  [key + key] : value
}



作者:徐金俊
链接:https://www.jianshu.com/p/2badae5d7bb6


點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消