函数任务是使用内置的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
参数。这只是一种有助于防止开发人员错误的安全机制。
在由人员团队编写的大规模应用程序中,您很可能会一直看到这些检查。编写安全的代码意味着要考虑所有可能失败的方法,这意味着要考虑其他人使用您的代码可能无法正确使用它的可能性。通常,那个“别人”是你从未来来的,迷惑地看着你上周写的废话。