[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类的理解和使用