zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    Hadoop源代码分析
    Java中如何把两个数组合并为一个
    数据库死锁的解决办法
    Java程序中解决数据库超时与死锁
    mysql 死锁检查
    JDBC事务和数据库事务嵌套的讨论 .
    嵌套事务和事务保存点的错误处理
    java string常见操作题
    java基本数据类型包装类
    java string
  • 原文地址:https://www.cnblogs.com/ZheOneAndOnly/p/11346462.html
Copyright © 2011-2022 走看看