开始看到很多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获取函数名称、函数参数、对象属性名称的代码实例
- JavaScript window与undefined作为参数的作用
- JavaScript函数之实际参数对象(arguments) / callee属性 / caller属性 / 递归调用 / 获取函数名称的方法
- 编写一个参数JavaScript函数parseQueryString,它的用途是把url参数解析为一个对象
- js中当call或者apply传入的第一个参数是null/undefined时,js函数内执行的上下文环境是什么?
- 当call/apply传的第一个参数为null/undefined的时候js函数内执行的上下文对象是什么呢?
- JavaScript的作用;JS常见的三种对话框;==和===的区别;函数内部参数数组arguments在函数内部打印实参;JS的误区:没有块级作用域
- 【JavaScript】12_函数1:函数的参数,箭头函数的参数
- 传递PHP对象作为javascript函数的参数
- JavaScript Arguments 实现可变参数的函数,以及函数的递归调用