一、基础认识
Undefined会不会有人这么写过这个单词。
在 JavaScript 中,首字母大写的Undefined表示的是一种数据类型,所以建议书写时注意!
关于undefined
null表示"没有对象",即该处不应该有值。典型用法是:
(1) 作为函数的参数,表示该函数的参数不是对象。
(2) 作为对象原型链的终点。
Object.getPrototypeOf(Object.prototype)
// null
关于null
undefined表示"缺少值",就是此处应该有一个值,但是还没有定义。典型用法是:
(1)变量被声明了,但没有赋值时,就等于undefined。
(2) 调用函数时,应该提供的参数没有提供,该参数等于undefined。
(3)对象没有赋值的属性,该属性的值为undefined。
(4)函数没有返回值时,默认返回undefined。
null 与 undefined 的不同点:
undefined表示一个变量没有被声明,或者被声明了但“没有被赋值”(未初始化),一个没有传入实参的形参变量的值为undefined,如果一个函数什么都不返回,则该函数默认返回undefined;
null是一个表示“没有值”的值;
Javascript将未赋值的变量默认值设为undefined;
Javascript从来不会将变量设为null。它是用来让程序员表明某个用var声明的变量时没有值的;
undefined不是一个有效的JSON,而null是;
undefined的类型(typeof)是undefined;
null的类型(typeof)是object;
它们都是基本类型;
他们都是falsy (Boolean(undefined)->// false,Boolean(null)->// false);
你可以这样判断一个变量是否是undefined。typeof variable === "undefined";
你可以这样判断一个变量是否是null。variable === null;
双等号比较时它们相等(null==undefined->// true),但三等号比较时不相等(null===undefined->// false);
关于NaN
NaN 属性用于引用特殊的非数字值。NaN 不是常量,可以使用isNaN()来判断一个值是否是数字。原因是 NaN 与所有值都不相等,包括它自己。
*注意:当进行 number 类型运算时,当以下操作时,只要首个内容中不出现非数字类型(空格除外)的,结果会变成 NaN
1、window.Number()
2、window.parentInt()
3、window.parentFloat()
关于''
""是字符串,typeof ""得到的是"string"。它表示一个没有任何字符的字符串。
*注意:当需要把数据类型转变成字符型时,可以这样写。
var str = 1;
var string = str + ''
还有很多,其他方法:toString()、String()
附:博客和网站
1、JavaScript 中 undefined 和 null 的区别
2、阮一峰· undefined 与 null 的区别
End
谢谢观看,欢迎交流
领取专属 10元无门槛券
私享最新 技术干货