这不是一个实际问题,我只需要一个解释。
我有以下代码:
var src = container.find('img').attr('src');
if(src === 'undefined') {
alert('No src');
}
当我启动控制台并记录 src 时,它说它未定义但未触发警报。调试这段代码可以证明以前的行为是正确的。当我删除 if 语句中的 '' 并将未定义为类型时,会触发警报。
另一方面,在我的代码下方,我有这一段:
var pathname = (window.location.pathname).split('/');
if(pathname[5] === 'undefined') {
alert('Something...');
}
每当控制台说 pathname[5] 未定义时,警报就会正确触发。
因此,我认为在第一种情况下 undefined 作为类型返回,而在第二种情况下作为字符串返回。这是正确的,为什么会有这样的行为?
感谢所有聪明的答案!