参数默认值 1.首先,来看一下es5中的函数默认值 var a = a || 10; var b = b || "none" // 当a的值或者b的值为undefined时,根据逻辑或运算的特性,将会返回后一个值,因而实现默认值 function sum (a, b) { a = a || 10; b = b || 5; return a + b; } sum(); // 15 2.es6中提供了一个新的函数默认值的方式,外界传入的参数会依次赋值给函数中的参数 function sum…
一.函数参数默认值中模糊的独立作用域 我在ES6入门学习函数拓展这一篇博客中有记录,当函数的参数使用默认值时,参数会在初始化过程中产生一个独立的作用域,初始化完成作用域会消失:如果不使用参数默认值,不会产生这个作用域:产生疑问是因为这段代码: var x = 1; function foo(x, y = function () {x = 2;}) { var x = 3; y(); console.log(x); }; foo(); foo(4); console.log(x); 老实说,关于这…
函数参数默认值 ES6 之前,不能直接为函数的参数指定默认值,只能采用变通的方法. function log(x, y) { y = y || 'World'; console.log(x, y); } log('Hello') // Hello World log('Hello', 'China') // Hello China log('Hello', '') // Hello World 面代码检查函数log的参数y有没有赋值,如果没有,则指定默认值为World.这种写法的缺点在于,如果参…