null与""的问题

        var loginEmail = $.trim($("input[name='email']").val());  

        

       if (loginEmail == null || loginEmail == '邮箱' || loginEmail == "") {  

           $(".smtwarning").empty().text("您的邮箱账号忘记输入了");  

             

           }  

           

           

         这个代码中loginEmail == null与loginEmail == ""不是一个意思吗??


慕神8447489
浏览 526回答 1
1回答

莫回无

以下内容均摘自《你不知道的javascript(中卷)》null 和 undefined 之间的 ==涉及隐式转换,在x=y中,ES5 规范 11.9.3.2-3 规定:如果 x 为 null, y 为 undefined,则结果为 true。如果 x 为 undefined, y 为 null,则结果为 true。在 == 中 null 和 undefined 相等(它们也与其自身相等),除此之外其他值都不存在这种情况,例如:var a = null;var b;a == b; // truea == null; // trueb == null; // truea == false; // falseb == false; // falsea == ""; // falseb == ""; // falsea == 0; // falseb == 0; // falsenull 和 undefined 之间的强制类型转换是安全可靠的,上例中除 null 和 undefined 以外的其他值均无法得到假阳( false positive)结果。个人认为通过这种方式将 null 和 undefined作为等价值来处理比较好。例如:var a = doSomething();if (a == null) {// ..}条件判断 a == null 仅在 doSomething() 返回非 null 和 undefined 时才成立,除此之外其他值都不成立,包括 0、 false 和 "" 这样的假值。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript