null 表示没有对象,也就是说此处不该有值,用法是
1)作为函数的参数,表示他不是对象
2)作为对象原型链的终点(函数的原型对象constructor默认指向函数本身,原型对象除了有原型属性外,为了实现继承,还有一个原型链指针proto,该指针指向上一层的原型对象,而上一层的原型对象的结构依然类似,这样利用proto一直指向Object的原型对象上,而Object的原型对象用Object.proto = null表示原型链的最顶端,如此变形成了javascript的原型链继承,同时也解释了为什么所有的javascript对象都具有Object的基本方法。)
undefined表示缺少值,就是此处应该有个值,但是没有定义,用法:
1)变量被声明,但是没有赋值
2)调用函数,没有提供应该提供的参数
3)对象没有赋值的属性,此属性为undefined
4)函数没有返回值,默认返回undefined