1.js有六种数据类型,分别是:undefined、null、string、boolean、number、object
首先来说下undefined这个数据类型,可以分为四步进行详解。
第一:是什么
undefined是其中一种数据类型,它只有一个值,怎么说呢,使用console.log(undefined);在浏览器输出只有一个值,就是undefined.
第二:什么情况会出现,如何判断呢?
平时项目中出现不少undefined,一般出现的情况是
1、声明了一个变量,但是未初始化该变量,因为未初始化的值默认就会是undefined。
2、一个function函数中,没有显式return返回值,就默认的返回值是undefined
3、js中函数的形参,当function被调用的时候传入的参数小于函数申明的形式参数,那么多余的形参是默认是undefined(其实就是该形参还未被赋值)。
数据类型一般的判断就是typeof()操作符来检测其数据类型,var aa;typeof(aa);输出是字符串的“undefined”
需要注意的是:对于尚未声明过的变量和未初始化的变量,使用typeof()检测时,都是返回“undefined”
第三:它与null的区别,在代码中如何避免这种出现undefined这种情况
1、null代表声明了是一个空对象,它也只是一个值,只能执行的操作是==或者!=一些操作符,对于有意保存对象的变量来说,但是还没有真正保存对象,就应该明确地让该变量保存为null值,这样一来,就可以通过直接检查null的值就可以知道相对应的变量是否已经保存了一个对象的引用,而不再是一个空对象了。
if(car!=null){
//对car对象执行某些操作
}
注意:console.log(undefined==null) 输出是true
尽管null和undefined是不同的,但它们都表示"值的空缺",null表示"空值",undefined表示"未定义"。两者往往可以互换。判断相等运算符==认为两者是相等的。
2、类型转换的区别
undefined:
null:
typeof(undefined) 输出是undefined,null输出是object,可以使用该方法区别undefined和null。
第四:如何判断空值undefined和null
正确判断undefined的方法:
var exp = undefined; if (typeof(exp) == "undefined") { alert("undefined"); }
正确判断null的方法
var exp = null; if (!exp && typeof(exp)!=”undefined” && exp!=0) { alert(“is null”); }
注意:尽管如此,我们在 DOM 应用中,一般只需要用 (!exp) 来判断就可以了,因为 DOM 应用中,可能返回 null,可能返回 undefined,如果具体判断 null 还是 undefined 会使程序过于复杂
详细的判断null和undefined的文章是:https://www.cnblogs.com/thiaoqueen/p/6904398.html