示例:
假设在第一个长if
语句中满足前两个条件,则有许多可能$(this).val().split("@")[1].split(".")[1]
未定义的可能性。使用javascript / jquery这种技术是否安全?
$("#confEmail").keyup(function()
{
if(!validId)
{
if($(this).val() == $("#email").val() && $(this).val().split("@")[1].split(".")[1] == "com")
{
validEmail = true;
$("#emailIndicator").css("background-color","green");
}
else
{
validEmail = false;
$("#emailIndicator").css("background-color","red");
}
}
});
答案 0 :(得分:1)
是的,你可以使用它。但是你需要对未定义的条件进行代码处理。它是安全的,但代码必须处理所有可能的情况。
答案 1 :(得分:1)
这不是javascript特有的。你链接了一堆函数/访问器,结果可能是null或falsy。 split('@')
长度可以是< 1.第二次拆分也一样。除非你明确知道那些东西会按照你的期望进行评估,否则你应该采取防御性的方式进行编码,否则它会在你面前爆炸。