开始看到很多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也可以用其他标示符定义,但那样就不直观,就不容易理解了。
相关文章
- 【JavaScript】12_函数1:函数的参数,箭头函数的参数
- 传递PHP对象作为javascript函数的参数
- JavaScript Arguments 实现可变参数的函数,以及函数的递归调用
- JavaScript进阶系列02,函数作为参数以及在数组中的应用
- JavaScript学习笔记 -- 带参数arguments的函数的用法
- javascript 在一个函数参数中包含另一个函数的引用
- javascript 函数参数之中的undefined(zz)
- [Effective JavaScript 笔记]第21条:使用apply方法通过不同数量的参数调用函数
- 如何使用javascript传递具有可变参数的另一个函数中的函数? [重复]
- 如何将值'undefined'传递给具有多个参数的函数?