• ES6入门二:默认值与默认值表达式


    • 默认值
    • 默认值表达式

    需要注意的是,这种默认值和默认表达式在IE的最新版本中仍然没有得到兼容,只能通过编译转码的方式降级到ES5使用。

     一、默认值

    在函数声明时可以给形参赋默认值,当调用函数时不传入或者传入undefined的时候,函数会使用默认值进行计算。

    示例:

    1 function foo(x = 11,y = 31){
    2     console.log(x + y);
    3 }
    4 foo( null,6); // 6
    5 foo(undefined, 10); //21

    ES5编译结果:

     1 "use strict";
     2 
     3 function foo() {
     4   var x = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 11;
     5   var y = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 31;
     6   console.log(x + y);
     7 }
     8 
     9 foo(null, 6); // 6
    10 
    11 foo(undefined, 10); //21

     二、默认值表达式

     在函数声明时,形参可以是一个计算表达式,当调用函数执行时不传参或者传入undefined就使用计算表达式计算的值作为参数的值。

    示例:

     1 let a = 10;
     2 function bar(val){
     3     return a + val;
     4 }
     5 function foo(x = a + 5, y = bar(x)){
     6     console.log(x, y);
     7 }
     8 foo();  // 15   25
     9 foo(3); // 3    13
    10 foo(undefined, 10); // 15   10

    ES5编译结果:

     1 "use strict";
     2 
     3 var a = 10;
     4 
     5 function bar(val) {
     6   return a + val;
     7 }
     8 
     9 function foo() {
    10   var x = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : a + 5;
    11   var y = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : bar(x);
    12   console.log(x, y);
    13 }
    14 
    15 foo(); // 15   25
    16 
    17 foo(3); // 3    13
    18 
    19 foo(undefined, 10); // 15   10
  • 相关阅读:
    Python:字典
    Linux基础:dirname命令总结
    (三)封装与类
    (二)Java编程基础
    Ubuntu18.04 安装QQ、Tim、微信与win无差异
    (一)JDK安装和使用eclipse输出hello world
    Java复习目录
    (八)MySQL事务、视图、变量、存储过程、函数、流程控制结构
    (七)MySQL常见的数据类型、约束和标识列
    (六)MySQL数据、库、表的管理
  • 原文地址:https://www.cnblogs.com/ZheOneAndOnly/p/11346462.html
Copyright © 2020-2023  润新知