【JS】JavaScript中Null和undefind区别
1、undefined:只有一个值,及特殊的undefined。在使用var声明变量但未对其初始化时,这个变量的值是undefined,简言之,undefined就是表示变量申明了但未初始化时的值。
注意:尚未声明的值直接alert其值会报错而不是显示undefined;但是如果一个申明了未赋值的变量与未声明的变量所显示的typeof结果是一样的--->undefined
1 <script type="text/javascript"> 2 3 var str; 4 5 alert(typeof str);//undefined 6 7 alert(typeof message);//undefined 8 9 </script>
2、undefined在参与数值运算时一定是NAN,在与字符串拼接相加时则直接显示undefined;
1 <script type="text/javascript"> 2 3 var b; 4 5 alert(b+3);//输出 NAN 6 7 alert(b+'3');//输出 undefined3 8 9 </script>
3、null:示准备用来保存对象,还没有真正保存对象的值。从逻辑角度看,null值表示一个空对象指针。也就是说 null是相对于对象而言的,所以typeof(null) 为object。
null在参与数值计算时其值自动转换为0,而进行字符串相加拼接时会以字符串“null”的方式显示;
1 <script type="text/javascript"> 2 3 var a=null; 4 5 alert(null+3+5);//8 6 7 alert(null+'hello');//nullhello 8 9 alert(null+3+'hello');//3hello 10 11 alert(null+'hello'+3);//nullhello3 12 13 </script>
4、如何区分?
1 alert(typeof null == typeof undefined);//false 2 3 alert(null === undefined);//false 4 5 alert(null == undefined);//true
作者:willingtolove
出处:http://www.cnblogs.com/willingtolove/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。