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

时间:2012-12-29 05:39:04

标签: javascript jquery

我有以下javascript代码:

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

我怎样才能使$targetSpan.removeClass(..).addClass仅在iconClass有一个时才有效 调用函数时的值。我想我感到困惑的是我是否检查它是否已定义 或者我是否检查其长度是否为0?

2 个答案:

答案 0 :(得分:3)

最好还检查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);
    }
}​

答案 1 :(得分:1)

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

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