为什么 null 是一个对象,null 和 unfined 之间有什么区别?
2022-08-29 22:14:09
为什么在 JavaScript 中被认为是 a?null
object
正在检查
if ( object == null )
Do something
与
if ( !object )
Do something
?
此外:
和 有什么区别?null
undefined
为什么在 JavaScript 中被认为是 a?null
object
正在检查
if ( object == null )
Do something
与
if ( !object )
Do something
?
此外:
和 有什么区别?null
undefined
(name is undefined)
你:什么? (*)
JavaScript: ?什么是?我不知道你在说什么。你以前从未提到过任何东西。您是否在(客户端)端看到其他脚本语言?name
name
name
name
name = null;
你:什么?
JavaScript:我不知道。name
简而言之; 是不存在事物概念的地方;它没有类型,并且以前从未在该范围内被引用过; 是已知事物存在的地方,但不知道其值是什么。undefined
null
要记住的一件事是,从概念上讲,这与或此类并不相同,即使它们在类型转换之后相等,即null
false
""
name = false;
你:什么?
JavaScript:布尔错误。name
name = '';
你:什么?
JavaScript:空字符串name
*:在此上下文中,名称
表示为从未定义过的变量。它可以是任何未定义的变量,但是,name是几乎任何HTML表单元素的属性。它走得很远,很久以前就已经建立了。它很有用,因为 ID 必须是唯一的,但名称不必是唯一的。
差异可以总结为以下代码段:
alert(typeof(null)); // object
alert(typeof(undefined)); // undefined
alert(null !== undefined) //true
alert(null == undefined) //true
检查
object == null
是不同的检查。if ( !object )
后者等于 ,因为一元运算符会自动将正确的操作数转换为布尔值。! Boolean(object)
!
既然等于假,那么.Boolean(null)
!false === true
因此,如果您的对象不是 null,而是 false 或 0 或 “”,则检查将通过,因为:
alert(Boolean(null)) //false
alert(Boolean(0)) //false
alert(Boolean("")) //false