跳至主要內容

对象字面量的增强与函数参数的默认值

Mr.Chen前端进阶ES6对象字面量函数参数默认值大约 2 分钟约 735 字

对象字面量的增强

属性和方法的简介表示法

  1. 对象字面量是什么?
// 对象字面量
const person = {
  age: 18,
  speak: function () {},
}

还可以通过实例化构造函数生成对象:

// 实例化构造函数生成对象
const person= new Object()
person.age=18
person.speak=function()
  1. 属性的简洁表示法
    键名和变量或常量一样的时候,可以只写一个
const age = 18
const person = {
  // age:age
  age,
}

3.方法的简介表示法
方法可以省略冒号和 function 关键字,但不能使用箭头函数

const person = {
  // speak:function(){}
  speak() {},
}

方括号语法

  1. 方括号语法的用法

增强:方括号语法可以写在对象字面量中

const prop = 'age'
const person = {}
// person.prop=18 x
// person[prop]=18
// 增强
const person = {
  [prop]: 18,
}
  1. 方括号中可以放什么
    值或通过计算可以得到值的(表达式)
const prop='age'
const func=()=>"age"
const person={
    [prop]:18,
    [func()]:18
    ['sex']:'male'
}
  1. 方括号语法和点语法的区别
const person = {}
person.age等价于person['age']
  • 属性名是合法标识符时,使用点语法和方括号语法都是可以的,属性名不是合法标识符时,只能使用方括号语法
  • 使用变量或者常量保存属性名时,只能使用方括号语法,不能使用点语法。

同一个属性不可以同时使用简洁表达式(键名和变量或常量一样的时候,可以只写一个)和方括号语法

const age='18'
const name='frank'
const person={
    [age]["name"]}

函数参数的默认值

函数参数的默认值是什么?

1.认识
调用函数的时候传参了,就用传递的参数;如果没传参,就用默认值

  1. 函数参数默认值的基本用法
const multiply = (x = 1, y = 1) => x * y

函数参数默认值的注意事项

  1. 默认值的生效条件
    不传参数,或者明确的传递 undefined 作为参数,只有这两种情况下,默认值才会生效
  2. 默认值表达式
    如果默认是表达式,默认表达式是惰性求值的
  3. 设置默认值的小技巧
    函数参数的默认值,最好从参数列表的右边开始设置
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()
上次编辑于: