使用!=空和!=在javascript中未定义?
在javascript中,使用使用!=空和!=在javascript中未定义?,javascript,null,operators,undefined,null-check,Javascript,Null,Operators,Undefined,Null Check,在javascript中,使用!=空值和!=未定义的 您是否可以为myVar指定一个值,该值将导致这两行代码的计算结果不同 console.log(myVar != undefined) console.log(myVar != null) 如果你知道这两个操作的性能,我也很想知道。的==和=运算符进行“类型转换”以仅比较值本身。那么不,使用“未定义”或“null”没有区别。在这种情况下,两者都表示“空” 但是如果你使用==和==
!=空值
和!=未定义的
您是否可以为myVar
指定一个值,该值将导致这两行代码的计算结果不同
console.log(myVar != undefined)
console.log(myVar != null)
如果你知道这两个操作的性能,我也很想知道。的
==
和=代码>运算符进行“类型转换”以仅比较值本身。那么不,使用“未定义”或“null”没有区别。在这种情况下,两者都表示“空”
但是如果你使用==
和==相反,它检查类型和值,而不进行任何类型转换。这两条线的结果将不同
myVar = null;
console.log(myVar !== undefined) //true
console.log(myVar !== null) //false
没有功能上的区别<代码>x!=未定义的
和x!=null
当x
为null
或未定义时,两者仅计算为false
。对于x
的所有其他值,它们的计算结果均为true
也没有性能差异。不要混淆,因为它们不是一回事
null:
值null表示有意缺少任何对象值。它是JavaScript的基本值之一
未定义:
未赋值的变量属于未定义类型。如果正在求值的变量没有赋值,则方法或语句也会返回undefined。如果未返回值,函数将返回未定义的值
如果变量包含的值既不是null
也不是未定义
,则您的条件没有差异
const值=3;
console.log(值!==未定义)//true
console.log(value!==null)//true
没有区别,正如您在下表中看到的JS=
测试(关注null/未定义的行/列)(src:)。所以myVar=只有当myVar
值不是null
且不是未定义的时,null
才为真(与myVar!=未定义的相同)
看起来两者的性能相似(我在Mac OS X 10.13.4 HighSierra:Chrome 71.0.3578、Firefox 65.0.0和Safari 11.1.0上进行了测试-您可以在浏览器中运行测试)
性能应该是您最不关心的问题。myVar
的可能值是什么?@r3zaxd1有用链接可能重复,谢谢。但我的问题不同。这是关于不等式运算符,而不是null和undefined的性质。@Teemu我输入错误,我现在就编辑并修复它。
let myVar1=null;
let myVar2=undefined;