js中的空字符串相当于null还是相当于undefined?
都不是
使用var声明变量但未对其加以初始化时,这个变量的值就是undefined,如:
var username;
alert(username == undefined);//true
var arr = [];
alert(arr[0] == undefined);//true
而null表示一个空对象指针,用法:
如果定义的变量准备在将来用于保存对象,一般将变量初始化为null。
空字符串是一个实实在在的对象,值为空而已,所以它既不是null也不是undefined
含义上是有区别的。
定义三个变量:
var s1,
s2 = null,
s3 = '';
s1是undefined,说明它没有被初始化。js解释器认为这个变量是需要初始化的。
s2已经被初始化为null,不过是被初始化为一个空对象null。null本身是一个对象。
s3已经被初始化字符串,它已经有了数据类型,也有对应的存储位置。
都不是
null是无值
undefined是未定义
都不是,空串就是空串