var loginEmail = $.trim($("input[name='email']").val());
if (loginEmail == null || loginEmail == '邮箱' || loginEmail == "") {
$(".smtwarning").empty().text("您的邮箱账号忘记输入了");
}
这个代码中loginEmail == null与loginEmail == ""不是一个意思吗??
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
以下内容均摘自《你不知道的javascript(中卷)》
null 和 undefined 之间的 ==涉及隐式转换,在x=y中,ES5 规范 11.9.3.2-3 规定:
如果 x 为 null, y 为 undefined,则结果为 true。
如果 x 为 undefined, y 为 null,则结果为 true。
在 == 中 null 和 undefined 相等(它们也与其自身相等),除此之外其他值都不存在这种
情况,例如:
null 和 undefined 之间的强制类型转换是安全可靠的,上例中除 null 和 undefined 以外的
其他值均无法得到假阳( false positive)结果。个人认为通过这种方式将 null 和 undefined
作为等价值来处理比较好。
例如:
条件判断 a == null 仅在 doSomething() 返回非 null 和 undefined 时才成立,除此之外其
他值都不成立,包括 0、 false 和 "" 这样的假值。
null表示空对象指针
另外感觉这里判断有问题吧 前面 var loginEmail = $.trim($("input[name='email']").val()); 这句代码里取出来的不会出现null这样的值吧 直接判断空就好了
不是,null表示“没有对象”,而""表示一个空白的字符串,空白字符串也是对象,只不过字符串里没有字符。
不是一个意思,
""可能是$("input[name='email']").val()取到的值为''或只包含空格的字符串,
null只可能是$("input[name='email']")没有获取到相关元素。
$.trim 的返回值类型只有字符串,所以是不用判断是否为null的。
null和""是两种类型,不是一个意思。只是转成 boolen 值都是 false 。所以在
JS中判断字符串是否有值应该用!str,当然,str本身应该经过一轮trim。null是javascript的内置对象。值 null 是一个 JavaScript 字面量,表示空值(null or an "empty" value),即没有对象被呈现(no object value is present)。它是 JavaScript 原始值 之一。而《""》是一个char型的值,和'a'、'b'是一样滴。可以看下这里MDN