Javascript的基本数据类型中有undefined和null两种只有一个值得特殊数据类型。其中undefined表示未被初始化,不是为声明。而null表示一个空对象指针,而这也是使用typeof检测null返回”object”的原因。

undefined表达的是通过var声明了变量,但没有显示的赋值(由此可以推论,Javascript的变量默认值为undefined)。然而对声明未赋值的变量和未被声明的变量执行typeof操作返回值均是”undefined”。就这点来讲,我们在声明变量的时候最好对其显示的赋值,这样当typeof返回”undefined”时,能明确知道这个变量时未声明的,不是未赋值的。

//undefined 一些比较
var name;
alert(name); //undefined
alert((typeof name ); // undefined
alert(name == undefined ) ; // true
alert(name ===undefined); // true
//未声明age变量
alert(age); //产生异常
alert(typeof age); //undefined
alert(age == undefined); // 产生异常
alert(age === undefined); // 产生异常

null,空指针对象。由于Javascript是弱类型的,在变量的生存周期中可以任意改变其类型。对于一个准备保存对象的变量来说,应该初始化为null,这样检测null就可以确认这个对象是否已经引用了一个对象。

var people = null;
alert(people == null) ; //true
alert(people === null) ; //true
alert(typeof people) ; //object

最后一点特殊的,undefined派生自null,因此null和undefined进行相等测试结果是true。这里不讨论==和===的区别,下面这个结果只表示,null和undefined不是完全相同的值。:

alert(null == undefined);    //true
alert(null === undefined); //false

在使用上,null只表示空指针对象,undefined可以表示任意显示未初始化的变量。只要用于保存对象的变量都应明确初始化为null。

最新文章

  1. stm8s103串口
  2. SharePoint\O365 "See also"功能 and site feature 激活\禁用小节
  3. [转]ssh常用用法小结
  4. (转)从集中到分布,解读网络视频IT架构变迁
  5. WCF启用Session
  6. IOS xib生成界面和代码生成界面两种方式混合
  7. Registry uninstall values
  8. shareSDK微博分享出现: 分享失败: 错误描述:Insufficient app permissions! 错误码:10014
  9. 使用 PHP 读取文本(TXT)文件 并分页显示
  10. Sublime_调试PHP编译系统设置.
  11. Web API Test Client 1.2.0
  12. Saltstack基础
  13. 内核中 xxx_initcall 的调用过程分析
  14. Visual Studio 2017的一些使用记录
  15. webstorm没有及时将改动保存到文件盘的问题
  16. C++ vector和list的主要用法区别
  17. Lintcode12-Min Stack-Easy
  18. 【Orleans开胃菜系列2】连接Connect源码简易分析
  19. Java NIO 之 Buffer(缓冲区)
  20. [转]浅谈 JavaScript的原型对象与原型链

热门文章

  1. MySql中常用语句
  2. 【Asp.Net】小BUG汇总[更新]
  3. php 需熟练掌握的几个函数
  4. C# 程序关闭和进程关闭
  5. POJ 3273 Monthly Expense 二分枚举
  6. ORA-01033 ORA-01109 ORA-01034 ORA-12514 ORA-24324 ORA-01041 ORA-01157 ORA-01110
  7. 一个Bootstrap风格的分页控件
  8. ember.js
  9. 靓号正则表达式(前后向查找等) 和 apache正则包使用
  10. Web-Scale IT:对企业的影响