繁体   English   中英

如何检查传递给javascript函数的参数值是否为空?

[英]How can I check if the value of a parameter passed to a javascript function is null?

我有以下javascript代码:

    function changeButtonState(targetSelector, action, iconClass) {
        var $target = $(targetSelector);
        var $targetSpan = $(targetSelector + ' span');
        $targetSpan.removeClass('sprite-blank').addClass(iconClass);

我如何才能使$targetSpan.removeClass(..).addClass仅在调用函数时iconClass具有值时才起作用。 我想我感到困惑的是,我是否检查它是否已定义,或者我是否检查其长度是否为0或更长?

如果你检查undefined也是最好的。

function changeButtonState(targetSelector, action, iconClass) {    
    var $target = $(targetSelector);
    if (typeof iconClass !== "undefined" && iconClass) {
        var $targetSpan = $(targetSelector + ' span');
        $targetSpan.removeClass('sprite-blank').addClass(iconClass);
    }
}​

更新即使这是一个非常古老的答案,它仍然是相关的。 因此,我想根据@ jeremy的评论更新我的答案。

function changeButtonState(targetSelector, action, iconClass) {    
    var $target = $(targetSelector);
    //this will not throw exception since iconClass is implicitly declared through the input parameter 
    if (iconClass) {
        var $targetSpan = $(targetSelector + ' span');
        $targetSpan.removeClass('sprite-blank').addClass(iconClass);
    }
}​

这将允许用户(很可能是您)通过赋予其假名值或真值来指定您是否希望它处于活动状态。 您可能还想通过使用typeof运算符来检查它是否未定义。

if(iconClass) {
    $targetSpan.removeClass('sprite-blank').addClass(iconClass);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM