您好,欢迎访问代理记账网站
  • 价格透明
  • 信息保密
  • 进度掌控
  • 售后无忧

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

一、对象字面量的增强

1.对象字面量是什么

        const person = {

            age:18,

            name:'zhangsan'

        }

  以上就是所谓的字面量表示法

 

2.属性和方法的简洁表示方法

a.属性的简洁表示法:

当键名和值名一样时,可以只写一个

            const person = {

                //age:age

                age

            }

 

b.方法的简洁表示法:

方法可以省略冒号和function关键字

        const person = {

            speak(){}

        }

 

3.方括号语法

方括号语法的用法

原方法:

        const prop = 'age';

        const person={};

        person[prop]=18;

 

现方法

        const prop='age';

        const person = {

            [prop]:18

        };

 

a.方括号中可以放什么

值或者通过计算可以得到值的表达式

        const prop = 'age';

        const func = ()=>'age2';

        const person = {

            [prop]:18,

            [func()]:18,

            ['sex']:'male',

            ['s'+'ex']:'female'

        } 

 

方括号语法和点语法的区别:

  •  点语法是方括号语法的特殊形式
  • 属性名由数字、字母、下划线以及$构成,并且数字还不能开头时可以使用点语法(合法标识符)
  • 当你的属性或方法名是合法标识符时,可以使用点语法,其他情况下使用方括号语法

 

二、函数参数的默认值

 1.函数参数的默认值是什么

调用函数时传参了,就用传递的参数;如果没有传参,就用默认值

 multiply(2,1);

multiply(2);

 

2.函数参数的基本用法

原方法:

        const = multiply=>(a,b){

           if(typeof==='undefined'){

               b=1;

           }

           return a*b;

        }

        multiply(2);

        multiply(2,1);

 

现方法:

        const = multiply=>(a,b=5) a*b;

        multiply(2);

        multiply(2,1);

 

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

默认值的生效条件

        不传参数,或者明确的传递undefined作为参数,只有这两种情况下,默认值才生效

        const = multiply=>(a,b=5) a*b;

        multiply(2);        

 

默认值表达式

        如果默认值是表达式,默认值表达式是惰性求值的


 

设置默认值的小技巧

        函数参数的默认值,最好从参数列表的右边开始设置

        const = multiply=>(a,b=5) a*b;

        multiply(2);

 

        const = multiply=>(a=5,b) a*b;

        multiply(undefined,2);//此时的undefined无法省略

 

 4.函数参数默认值的应用

<script>
//接收很多参数时
    const logUser = ({
            username = 'zhangsan',
            age = 0,
            sex = 'male'
        } = {}) => {
            console.log(username, age, sex);
        }

        logUser();
</script>

 


分享:

低价透明

统一报价,无隐形消费

金牌服务

一对一专属顾问7*24小时金牌服务

信息保密

个人信息安全有保障

售后无忧

服务出问题客服经理全程跟进