对象字面量的增强

属性和方法的简洁表示法

  1. // 1.对象字面量是什么
  2. // 实例化构造函数生成对象
  3. // const person = new Object();
  4. // person.age = 18;
  5. // person.speak = function () {};
  6. // 对象字面量
  7. // const person = {
  8. // age: 18,
  9. // speak: function () {}
  10. // };
  11. // 2.属性的简洁表示法
  12. // 键名和变量或常量名一样的时候,可以只写一个
  13. // const age = 18;
  14. // const person = {
  15. // // age: age
  16. // age
  17. // };
  18. // console.log(person);
  19. // 3.方法的简洁表示法
  20. // 方法可以省略冒号和 function 关键字
  21. const person = {
  22. // speak: function () {}
  23. speak() {}
  24. };
  25. console.log(person);

方括号语法

  1. // 1.方括号语法的用法
  2. // const prop = 'age';
  3. // const person = {};
  4. // // person.prop = 18;
  5. // person[prop] = 18;
  6. // 方括号语法可以写在对象字面量中
  7. // const person = {
  8. // [prop]: 18
  9. // };
  10. // console.log(person);
  11. // 2.方括号中可以放什么
  12. // ${}
  13. // [值或通过计算可以得到值的(表达式)]
  14. // const prop = 'age';
  15. // const func = () => 'age2';
  16. // const person = {
  17. // // [prop]: 18
  18. // // [func()]: 18
  19. // // ['sex']: 'male'
  20. // ['s' + 'ex']: 'male'
  21. // };
  22. // console.log(person);
  23. // 3.方括号语法和点语法的区别
  24. // 点语法是方括号语法的特殊形式
  25. const person = {};
  26. // person.age 等价于 person['age']
  27. // 属性名由数字、字母、下划线以及 $ 构成,并且数字还不能打头的时候可以使用点语法
  28. // age18_$ √
  29. // 18age ×
  30. // 合法标识符可以用来作为变量或常量名
  31. // 当你的属性或方法名是合法标识符时,可以使用点语法,其他情况下请使用方括号语法

函数参数的默认值

函数参数的默认值是什么

  1. // 1.认识函数参数的默认值
  2. // 调用函数的时候传参了,就用传递的参数;如果没传参,就用默认值
  3. // multiply(2, 1);
  4. // multiply(2);
  5. // 2.函数参数默认值的基本用法
  6. // const multiply = (x, y) => {
  7. // if (typeof y === 'undefined') {
  8. // y = 1;
  9. // }
  10. // return x * y;
  11. // };
  12. const multiply = (x, y = 1) => x * y;
  13. console.log(multiply(2));

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

  1. // 1.默认值的生效条件
  2. // 不传参数,或者明确的传递 undefined 作为参数,只有这两种情况下,默认值才会生效
  3. // const multiply = (x, y = 1) => x * y;
  4. // // console.log(multiply(2, 0));
  5. // // console.log(multiply(2, null));
  6. // console.log(multiply(2, undefined));
  7. // console.log(multiply(2));
  8. // 2.默认值表达式
  9. // 如果默认值是表达式,默认值表达式是惰性求值的
  10. // 3.设置默认值的小技巧
  11. // 函数参数的默认值,最好从参数列表的右边开始设置
  12. // const multiply = (x = 1, y) => x * y;
  13. // console.log(multiply(undefined, 2));
  14. const multiply = (x, y = 1) => x * y;
  15. console.log(multiply(2));

函数参数默认值的应用

  1. // 1.接收很多参数的时候
  2. // const logUser = (username = 'ZhangSan', age = 0, sex = 'male') =>
  3. // console.log(username, age, sex);
  4. // logUser('Alex', 18, 'male');
  5. // logUser();
  6. // 2.接收一个对象作为参数
  7. // const logUser = options =>
  8. // console.log(options.username, options.age, options.sex);
  9. const logUser = ({ username = 'zhangsan', age = 0, sex = 'male' } = {}) =>
  10. console.log(username, age, sex);
  11. // logUser({
  12. // username: 'alex',
  13. // age: 18,
  14. // sex: 'male'
  15. // });
  16. // logUser({ username: 'alex' });
  17. // { username = 'zhangsan', age = 0, sex = 'male' } = { username: 'alex' }
  18. // logUser({});
  19. logUser();
  20. // { username = 'zhangsan', age = 0, sex = 'male' } = {}
  21. // { username = 'zhangsan', age = 0, sex = 'male' } = undefined