Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用!=空和!=在javascript中未定义?_Javascript_Null_Operators_Undefined_Null Check - Fatal编程技术网

使用!=空和!=在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”没有区别。在这种情况下,两者都表示“空” 但是如果你使用==和==

在javascript中,使用
!=空值
!=未定义的

您是否可以为
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;