摘要:函数的默认参数函数参数的默认值都是,里,不支持直接在形参里写默认值。所以,要设置默认值,就要检测参数是否为,按需求赋值。
js函数的默认参数(default parameter)
js函数参数的默认值都是undefined, ES5里,不支持直接在形参里写默认值。所以,要设置默认值,就要检测参数是否为undefined,按需求赋值。
function multiply(a, b) { b = typeof b !== "undefined" ? b : 1; return a*b; } multiply(5); // 5 multiply(5, 0); // 0
上面是MDN的相关例子,是比较严谨的写法。不推荐下面的写法:
function multiply(a, b) { b = b ? b : 1; // b = b || 1; return a*b; } multiply(5); // 5 multiply(5, 0); // 5
因为,在布尔类型环境中undefined, 0, "", NaN, null会被转换成 false。
进一步,还可以先利用arguments对象,再设置默认值 :
function multiply(a) { var b = typeof arguments[1] !== "undefined" ? arguments[1] : 1; return a*b; } multiply(5); // 5 multiply(5, 0); // 0
ES6里已经支持默认参数了,直接写就好啦:
function multiply(a, b = 1) { return a*b; } multiply(5); // 5
ES6还支持解构赋值来设置默认参数:
jQuery.ajax = function (url, { async = true, beforeSend = function () {}, cache = true, complete = function () {}, crossDomain = false, global = true, // ... more config }) { // ... do stuff };
更详细的介绍,请看阮一峰的ECMAScript 6 入门的函数的拓展。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/82728.html
摘要:在选定的或者上进行负载测试,允许在你自己的测试里轻松集成。使用提供的非常容易整合到你的包里进行编程负载测试。在部署新版本软件之前,使运行负载测试成为系统测试的一部分变得非常容易。 前言 因为最近学习需要用到一些测试库测试性能,但是工具又太复杂不好用,恰好发现有这么一个库用法输出都很近似,可惜没有找到有中文版或者用法笔记,所以只好耐心一点一点翻译出来。因为我的英文水平很一般,而这种技术博...
摘要:而函数作用是加载延迟服务,与容器解析关系不大,我们放在以后再说。在构造之前,服务容器会先把放入中,继而再去解析。利用服务容器解析依赖的参数。 make解析 首先欢迎关注我的博客: www.leoyang90.cn 服务容器对对象的自动解析是服务容器的核心功能,make 函数、build 函数是实例化对象重要的核心,先大致看一下代码: public function make($abst...
摘要:兼容性如何支持以及的设备的浏览器便可运行不一一列举一共不到行为什么体积这么小腾讯手内大量的都会去不断地从各个维度进行性能优化。腾讯内部有哪些项目在用目前主要是兴趣部落群等业务在用,刚刚开源出来,只要有裁剪图片的地方都会用到。 传送门 Github地址:https://github.com/AlloyTeam/AlloyFinger/tree/master/alloy_crop 在线De...
摘要:中,引入了其他很多语言都具备的模式匹配和默认参数语法糖,使得代码简洁了不少。模式匹配中需要注意的触发默认值如下所示右侧的元素会触发左侧的默认值。 ES6 中,引入了其他很多语言都具备的模式匹配和默认参数语法糖,使得代码简洁了不少。但是使用的时候还是有些细节需要注意。 模式匹配原理 模式匹配的种类 具体来说,有三种类型的模式匹配: 直接赋值 let a = 1; 对象模式 let...
阅读 1793·2021-11-18 10:02
阅读 3524·2021-11-16 11:45
阅读 1786·2021-09-10 10:51
阅读 2106·2019-08-30 15:43
阅读 1372·2019-08-30 11:23
阅读 1484·2019-08-29 11:07
阅读 1892·2019-08-23 17:05
阅读 1394·2019-08-23 16:14