函数任务是使用内置的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;
}


}

最佳答案

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

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

09-13 12:12