在jquery中为跨平台和未来的应用程序使用未定义的变量是否安全?

时间:2014-01-14 04:25:14

标签: javascript jquery

示例:

假设在第一个长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");
                }

            }
        });

2 个答案:

答案 0 :(得分:1)

是的,你可以使用它。但是你需要对未定义的条件进行代码处理。它是安全的,但代码必须处理所有可能的情况。

答案 1 :(得分:1)

这不是javascript特有的。你链接了一堆函数/访问器,结果可能是null或falsy。 split('@')长度可以是< 1.第二次拆分也一样。除非你明确知道那些东西会按照你的期望进行评估,否则你应该采取防御性的方式进行编码,否则它会在你面前爆炸。