AlloyTouch

奇技淫巧之判断入参是否为undefined

守給你的承諾、 提交于 2019-12-07 12:56:57
前言 作为一个程序员,coding是每天必做的事情之一,今天埃尔斯在阅读腾讯AlloyTeam 的一个开源项目AlloyTouch,发现了一个有意思的小技巧,就是对undefined的精准判断。源码地址:https://github.com/AlloyTeam/AlloyTouch/blob/master/alloy_touch.js 这里面有个_getValue方法。 undefined的判断 在源码里的方法是这样的: _getValue: function (obj, defaultValue) { return obj === void 0 ? defaultValue : obj; }, 这里的意思是当obj为undefined的时候,return取defaultValue. 当看到这里的时候我就有点纳闷腾讯大神为什么不适用 “!” 为什么不写成这样的 _getValue: function (obj, defaultValue) { return !obj ? defaultValue : obj; }, 按理说这样也能实现对undefined的判断,我自己试了试确实可以,我尝试的代码如下所示: function aa(obj, defaultValue) { return obj === void 0 ? defaultValue : obj; }; aa(0,2) *