对于js设置函数参数默认值对于绝大多数小伙伴来说,那可以说是相当的简单的,在ES6/ES2015中语法很简单,但是有一些浏览器是不兼容的ES6/ES2015的,或许大家会说我们可以使用babel来编译支持低版本浏览器。
确实用babel可以解决这个问题: (,但是今天俺还是要跟大家分享一下ES6/ES2015和低版本js中是如何设置函数默认值的。
ES6/ES2015
从ES6 / ES2015开始,默认参数已经在语言规范当中。
/** * 时间:2019年8月13日 * 前端教程: https://www.pipipi.net/ */ function read_file(file, delete_after = false) { // Code }
上面的代码已经实现了默认参数,参阅MDN详细解释
你也可以使用ES6/ES2015中的解构赋值来实现默认命名参数:
/** * 时间:2019年8月13日 * 前端教程: https://www.pipipi.net/ */ function myFor({ start = 5, end = 1, step = -1 } = {}) { // (A) }
ES2015之前的版本
实现默认参数ES2015之前的版本有许多的方法,俺看到的比较多的,使用比较多的方法是以下代码,该方法支持传递任何值包括false或null。
/** * 时间:2019年8月13日 * 前端教程: https://www.pipipi.net/ */ function foo(a, b) { a = typeof a !== 'undefined' ? a : 42; b = typeof b !== 'undefined' ? b : 'default_b'; }