开始看到很多js函数里都带一个undefined的参数,很是疑惑,后来查了查,原来是这样.
假如我们定义了一个函数
function
a(){
if(arg1===undefined)
alert("arg1未定义");
}
有在某一个地方,由于什么原因,存在一个一个变量undefined="xx"(undefined不是保留字)。这样当我们调用函数a();时就不会输出"arg1未定义",但事实上arg1确实未定义。
但当我们这样定义函数a,
function
a(undefined){
if(arg1===undefined)
alert("arg1未定义");
}
在调用a();由于未传入参数,所以函数a的参数undefined等价于未定义,再判断arg1===undefined时就会返回true,得到正确结果。
所以,给函数在原有基础上增加一个undefined的参数,从某种程度上防止的undefined被变量污染。当然这个undefined也可以用其他标示符定义,但那样就不直观,就不容易理解了。
相关文章
- 01-04javascript中常见的函数封装 :判断是否是手机,判断是否是微信,获取url地址?后面的具体参数值,毫秒格式化时间,手机端px、rem尺寸转换等
- 01-04为什么JavaScript函数中的参数前面不能加var
- 01-04当call/apply传的第一个参数为null/undefined的时候js函数内执行的上下文对象是什么呢?
- 01-04JavaScript简餐——细看函数的参数
- 01-04javascript (函数的概念 意义 创建 执行 参数 声明提升 arguments return)
- 01-04javascript – 未捕获的TypeError:undefined不是jQuery的函数
- 01-04我在哪里可以获得有关JavaScript函数的对象参数语法的信息?
- 01-04javascript – Object.defineProperty Setter函数的多个参数?
- 01-04jq源码立即执行函数的undefined参数
- 01-04JavaScript中函数作为另一个函数的参数的时候它存在于哪个作用域