javascript 函数参数之中的undefined,zz

开始看到很多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也可以用其他标示符定义,但那样就不直观,就不容易理解了。