相比于诸多的大型静态语言,一般都只是有一个表示无的值!
例如C#中的null以及java中的null。
为什么静态语言中没有undefined,因为类似JAVA这种语言重点是编译过程
静态语言提供的类型安全特性,编译里面的存在undefined那么编译一定报错!
很早以前javascript也只有一个空值,null!后来随之发展加入了undefine。
为什么javascript语言中引入undefined,因为类似Javascript这种语言是动态语言。
重点是在执行。用动态语言编写应用程序可以快速看到输出。
相同点:
1.二者都是javascript中基本数据类型(num,str,bool,Object,null,undefine)
2.就相等运算来说,二者在大小上相等(均表示空)
不同点:
1.声明后是否初始化进行赋值
null表示声明且初始化并赋值为null
undefined声明但赋值 (而变量被声明了,但没有初始化赋值,就等于undefined)
2.type返回时null返回一个Object对象
type返回时undefined返回一个undefined
3.转化数值时,null返回数字0,undefine返回NAN(not a num)