在JAVASCRIPT里,null和undefined都表示不存在的数据,并且undefined也是从null中继承而来,那null是什么?undefined又是什么?它们两个又有什么共性和区别呢,请看下面的描述:
1、 null和undefined都是表示没有的、不存在的值。它们两个在进行逻辑转换时都是false,这两个值进行比较是true。
2、 null表示空引用,它是object类型。undefined表示未定义, 它是undefined类型。
3、 如果一个变量的值是null,那么必须主动的给它赋值null。
4、 一个变量未定义,或一个变量定义了未赋值,则是undefined。需要注意的是:一个变量如果没有定义,是不能直接在程序里使用的(就不是不能直接读取这个变量,但可以赋值)。比如说:本来没有定义一个叫a的变量
但我直接去alert(a);//在浏览器里这样是个语法错误,但是可用typeof去运算
但如果a定义了,未赋值,可以读,它的值就是undefined,如果用typeof去运算,那它的类型也是undefined。
5、 对说属性来说:如果原来没有这个属性,根本就不存在这个属性,那么它的值就是undefined。对象的属性不需要定义,如果不存在也可以直接去读,不会报错,而会给出一个undefined的值来。
6、 如果这个对象以后要用,但是现在还没有值,一般情况下,会给它一个null值。
7、 在函数(方法)里,如果必须返回值,但是值又计算不出来,那就返回一个null(这是规范,而不是语法规定,JAVASCRIPT里遵循这一规范)。比如网页中没有一个id是div2的元素,则下面的这句脚本则返回null
document.getElementById('div2');//返回null。
但是,没有返回值的函数,它的返回值都是undefined。