JavaScript中被忽略的参数的值是多少

what is the value of an ignored parameter in javascript?

本文关键字:参数 多少 JavaScript      更新时间:2023-09-26

我想知道 JS 中被忽略的参数的值是多少。假设一个函数将 2 个值作为参数,我们在调用中只提供一个。另一个的价值是什么?我以为它会是未定义的,但以下代码段仅显示"1"。

var test = function(par1, par2){
    document.write(par1.toString());
    document.write(par2.toString());
    if(typeof par2 === "undefined"){
        document.write('undefined');
    }
};
test(1);

以下代码将起作用:

var test = function(par1, par2){
    document.write(par1.toString());
    document.write(par2);
    if(par2 === undefined){
        document.write('undefined');
    }
};
test(1);

如果未提供参数,则其值为 undefined 。请注意,变量本身是可用的(毕竟,它的名称已经通过参数列表提供给函数,并且在 JavaScript 中计数的名称),因此无需通过typeof var === 'undefined'检查它以避免那些讨厌的 ReferenceErrors。

undefined是 JavaScript 中的一个特殊值。虽然您不能对其调用任何方法(失败并出现undefined is not an object错误),但您仍然可以在表达式和函数调用中使用它。在这种特殊情况下document.write会在显示之前将此值隐式转换为字符串;结果将是一个字符串 - 'undefined'

演示

尝试:

var test = function(par1, par2){
    if(par2 === undefined){
        document.write('undefined');
    }
};
test(1);

工作演示

您还可以检查是否设置了属性。例:

var test = function(par1, par2){
    if(par1 === undefined){
        document.write('par1 is undefined');
    }else{
        document.write('par1 is set');
    }
    if(par2 === undefined){
        document.write('par2 is undefined');
    }else{
        document.write('par2 is set');
    }
};
test(1);

输出将是:

par1 is set
par2 is undefined

演示 2

希望对:)有所帮助