[TOC]
>[success] # 參數解構
傳遞函數參數時。當 JS 的函數接收大量可選參數時,一個常用模式是創建一個 options 對象,其中包含了附加的參數
>[success] ## ES5參數解構
~~~
下面這種方法很有用,但無法僅通過查看'函數定義'就判斷出函數所期望的輸入,你必須閱讀'函數體'的代碼。
~~~
~~~
// options 上的屬性表示附加參數
function setCookie(name, value, options) {
options = options || {}
let secure = options.secure,
path = options.path,
domain = options.domain,
expires = options.expires;
console.log(options)
}
// 第三個參數映射到 options
setCookie("type", "js", {
secure: true,
expires: 60000
})
~~~
<br/>
>[success] ## ES6參數解構
~~~
// name, value代表必傳,第三個參數代表不必傳
function setCookie(name, value, { secure, path, domain, expires } = {}) {
// 設置 cookie 的代碼
console.log(secure) // true
console.log(expires) // 60000
}
setCookie("type", "js", {
secure: true,
expires: 60000
})
或者'數組參數解構'
let a = 1,
b = 2
function test([b,a] = []){
console.log(b,a) // 1 2
}
test([a,b])
~~~
<br/>
>[success] ## 參數解構默認值
~~~
你可以為'參數解構'提供可解構的'默認值',就像在'解構賦值'時所做的那樣,只需在其中每個參數后面添加
'等號'并指定'默認值'即可。例如:
~~~
~~~
function setCookie(name, value,
{
secure = false,
path = "/",
domain = "example.com",
expires = new Date(Date.now() + 360000000)
} = {}
) {
console.log(secure) // 1
console.log(path) // example.com
console.log(domain) // 22
// 代碼...
}
setCookie('小明','100歲',{secure:1,path:22})
~~~
- Javascript基礎篇
- Array數組
- 數組插入值
- filter()
- forEach()
- push()
- pop()
- unshift()
- shift()
- valueOf()
- 面向對象思想
- Javascript 面向對象編程(一):封裝
- Javascript面向對象編程(二):構造函數的繼承
- Javascript面向對象編程(三):非構造函數的繼承
- 解構
- 數組的解構賦值
- 對象的解構賦值
- 函數參數解構
- 字符串的解構賦值
- 數值和布爾值的解構賦值
- 圓括號問題
- 字符串.
- split()
- charAt()
- charCodeAt()
- concat()
- indexOf()
- lastIndexOf()
- match()
- replace()
- includes()
- 初識遞歸
- 渲染ul-li樹形結構
- 異步函數解決方案
- 1. callback回調函數
- 2. ES6 - Promise
- JavaScript高級程序設計(書)
- 在html中使用JavaScript
- script標簽的位置
- 延遲腳本
- 異步腳本
- <noscript>元素
- 基本概念
- 嚴格模式
- 變量詳解
- 數據類型
- typeof操作符
- undefined類型
- Null類型
- Boolean類型
- Number類型
- 深入了解ES6(書)
- var 、let 、 const
- 字符串與正則表達式
- 字符串
- 正則表達式
- 函數
- 函數形參默認值
- 使用不具名參數
- 函數構造器的增強能力
- 擴展運算符
- name屬性
- 明確函數的多重用途
- 塊級函數
- 箭頭函數
- 尾調用優化
- 擴展的對象功能
- 對象類別
- 對象字面量語法的擴展
- ES6對象新增方法
- 重復的對象屬性
- 自有屬性的枚舉順序
- 更強大的原型
- 解構:更方便的數據訪問
- 為什么要用解構?
- 對象解構
- 數組解構
- 混合解構
- 參數解構
- Symbol與Symbol屬性
- 創建Symbol
- Symbol的使用方法
- Symbol全局私有屬性
- Symbol與類型強制轉換
- Symbol屬性檢索
- Symbol的一些構造方法
- Set集合與Map集合
- Set集合
- Weak Set集合(弱引用Set集合)
- Map集合
- JS標準內置對象
- Object 構造函數及屬性
- Object 構造方法
- Symbol 內建對象類的函數及屬性
- Set 構造函數及屬性
- Weak Set 構造函數及屬性
- JS雜項
- 類數組對象
- Class類的理解和使用