函数第二个参数作为条件传递吗?

时间:2018-11-05 01:04:16

标签: javascript html css forms if-statement

功能任务是使用内置的CSS类在表单字段中设置和清除帮助消息。我的问题是为什么我需要验证函数内的helpText参数是否不等于null?参数由它与span标记共享的ID链接在一起,那么为什么需要验证?

<input id="phone" name="phone" type="text" size="12" onblur="validateNonEmpty"(this, document.getElementById('phone_help'))" />

<span id="phone_help" class="help"></span>

function validateNonEmpty(inputField, helpText) {

// See if the input value contains any text

if (inputField.value.length == 0) {

// The data is invalid, so set the help message

if (helpText != null)

    helpText.innerHTML = "Please enter a value.";

return false;

}

else {

    // The data is OK, so clear the help message

    if (helpText != null)

        helpText.innerHTML = "";

    return true;    
}


}

1 个答案:

答案 0 :(得分:0)

定义函数时,您正在创建一段可以在各种上下文中多次执行的代码。在JavaScript中,调用函数时,不能保证提供了必要的参数,也不能保证它们的类型正确。在代码中与null的非严格比较是确保在调用函数时提供了helpText参数。 这只是一种安全机制,可帮助防止开发人员出错。

在由人员团队编写的大规模应用程序中,您很可能会一直看到这些检查。编写安全的代码意味着要考虑所有可能导致失败的方法,这意味着要考虑其他人使用您的代码可能无法正确使用它的可能性。通常,那个“别人”是你从未来来的,迷惑地看着你上周写的废话。