对象字面量的增强与函数参数的默认值
大约 2 分钟约 735 字...
对象字面量的增强
属性和方法的简介表示法
- 对象字面量是什么?
// 对象字面量
const person = {
age: 18,
speak: function () {},
}
还可以通过实例化构造函数生成对象:
// 实例化构造函数生成对象
const person= new Object()
person.age=18
person.speak=function()
- 属性的简洁表示法
键名和变量或常量一样的时候,可以只写一个
const age = 18
const person = {
// age:age
age,
}
3.方法的简介表示法
方法可以省略冒号和 function 关键字,但不能使用箭头函数
const person = {
// speak:function(){}
speak() {},
}
方括号语法
- 方括号语法的用法
增强:方括号语法可以写在对象字面量中
const prop = 'age'
const person = {}
// person.prop=18 x
// person[prop]=18
// 增强
const person = {
[prop]: 18,
}
- 方括号中可以放什么
值或通过计算可以得到值的(表达式)
const prop='age'
const func=()=>"age"
const person={
[prop]:18,
[func()]:18
['sex']:'male'
}
- 方括号语法和点语法的区别
const person = {}
person.age等价于person['age']
- 属性名是合法标识符时,使用点语法和方括号语法都是可以的,属性名不是合法标识符时,只能使用方括号语法
- 使用变量或者常量保存属性名时,只能使用方括号语法,不能使用点语法。
同一个属性不可以同时使用简洁表达式(键名和变量或常量一样的时候,可以只写一个)和方括号语法
const age='18'
const name='frank'
const person={
[age] ❌
["name"]❌
}
函数参数的默认值
函数参数的默认值是什么?
1.认识
调用函数的时候传参了,就用传递的参数;如果没传参,就用默认值
- 函数参数默认值的基本用法
const multiply = (x = 1, y = 1) => x * y
函数参数默认值的注意事项
- 默认值的生效条件
不传参数,或者明确的传递 undefined 作为参数,只有这两种情况下,默认值才会生效 - 默认值表达式
如果默认是表达式,默认表达式是惰性求值的 - 设置默认值的小技巧
函数参数的默认值,最好从参数列表的右边开始设置
const multiply = (x = 1, y) => x * y、
// 不可以省略undefined(从右边设置可以省略)
console.log(multiply(undefined, 1))
函数参数默认值的应用
接收很多参数的时候,可以接收一个对象作为参数
// 无需记忆参数的顺序
// 解构赋值,解构赋值的默认值,函数参数的默认值混用
const logUser = ({ username = 'wuming', age = '0', sex = '0' } = {}) => {
console.log(username, age, sex)
}
// logUser(
// {username:'a',
// age:16,
// sex:'male'}
// )
// logUser({})
logUser()