undefined是基本数据类型 表示未定义 缺少的意思

null是引用数据类型  是对象 表示空对象

undefined是从null派生出来的  所以undefined==null  true

JavaScript的最初版本是这样区分的:null是一个表示"无"的对象,转为数值时为0;undefined是一个表示"无"的原始值,转为数值时为NaN。

即 Number(null) 0    Number(undefined) NaN

但是,上面这样的区分,在实践中很快就被证明不可行。目前,null和undefined基本是同义的,只有一些细微的差别。

null表示"没有对象",即该处不应该有值。典型用法是:

(1) 作为函数的参数,表示该函数的参数不是对象。

(2) 作为对象原型链的终点。


Object.getPrototypeOf(Object.prototype)
// null

undefined表示"缺少值",就是此处应该有一个值,但是还没有定义。典型用法是:

(1)变量被声明了,但没有赋值时,就等于undefined。

(2) 调用函数时,应该提供的参数没有提供,该参数等于undefined。

(3)对象没有赋值的属性,该属性的值为undefined。

(4)函数没有返回值时,默认返回undefined。

var i;
i // undefined function f(x){console.log(x)}
f() // undefined var o = new Object();
o.p // undefined var x = f();
x // undefined

 

最新文章

  1. Contents
  2. oracle的round函数和trunc函数
  3. java中使用MD5加密技术
  4. 发布网站时报错:未能将文件xxx复制到xxx,问题处理
  5. CentOS6.5的openssl升级
  6. LightOJ 1245 Harmonic Number (II) 水题
  7. ueditor编辑器图片自定义存放目录及路径修改
  8. 【POJ2417】baby step giant step
  9. HDU 5144 NPY and shot(三分法)
  10. liunx下NetworkManager导致网卡不能启动
  11. 消费创富会开发模式系统App
  12. Docker存储驱动之OverlayFS简介
  13. JavaScript八张思维导图—基本概念
  14. Qt自定义控件
  15. Kotlin 类和对象
  16. MPU6050带字符驱动的i2c从设备驱动1
  17. VS2015 与 Git 的简单使用
  18. js 格式化时间日期函数小结
  19. Ubuntu17.04下安装vmware虚拟机
  20. jsp数据库开发

热门文章

  1. Java课程设计---团队博客
  2. Java课程设计——计算器团队博客
  3. Install Oracle 12c R2 on CentOS 7 silent
  4. powerdesigner逆向工程 oracle
  5. mybatis-basedao的实现
  6. vue2.0动态绑定图片src属性值初始化时报错
  7. Linux Ubuntu从零开始部署web环境及项目 -----tomcat+jdk+mysql (二)
  8. spring实例化dataSource使用jndi和jdbc两种方式
  9. SpringAop详解
  10. unable to dequeue a cell with identifier MealTableViewCell