JavaScript typeof、null 和 undefined

typeof 操作符

你可以使用 typeof 操作符来检测变量的数据类型。

typeof(的)运算数未定义,返回(的)就是 "undefined". 
运算数为数字 typeof(x) = "number" 
字符串 typeof(x) = "string" 
布尔值 typeof(x) = "boolean" 
对象,数组和null typeof(x) = "object" 
函数 typeof(x) = "function"

typeof 运算符返回一个用来表示表达式(的)数据类型(的)字符串。 
可能(的)字符串有:"number"、"string"、"boolean"、"object"、"function" 和 "undefined"。

如: 
alert(typeof (123));//typeof(123)返回"number" 
alert(typeof ("123"));//typeof("123")返回"string"

typeof 运算符返回一个用来表示表达式(的)数据类型(的)字符串。 

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php.cn</title>
</head>
<body>
<p id="demo"></p>
<script>
document.getElementById("demo").innerHTML = 
typeof "john" + "<br>" + 
typeof 3.14 + "<br>" +
typeof false + "<br>" +
typeof [1,2,3,4] + "<br>" +
typeof {name:'john', age:34};
</script>
</body>
</html>

空值(Null)

空值类型表示该变量或内容无任何值。例如一个表单文本输入框中无任何内容时,我们试图用 JavaScript 去获取该文本输入框元素的值时,得到的结果就是 null。

要判断是否为空值,只需将需要比较的内容与 null 进行比较即可:

if( x == null ) { ... }

鉴于 Web 系统运行的特点,很多情况下可以通过给一个变量赋 null 值来清除变量的内容而不用特意去销毁该变量。

未定义(Undefined)

变量被创建后,未给该变量赋值,该变量即为未定义类型。未定义类型有一个确定的值 undefined,因此要判断一个变量或返回结果是否为未定义类型,只需将它与 undefined 进行比较即可:

if( x == undefined ) { ... }


Undefined 和 Null 的区别

Undefined类型只有一个值,即undefined。当声明的变量还未被初始化时,变量的默认值为undefined。
Null类型也只有一个值,即null。null用来表示尚未存在的对象,常用来表示函数企图返回一个不存在的对象。

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);

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php.cn</title>
</head>
<body>
<p id="demo"></p>
<script>
document.getElementById("demo").innerHTML =
typeof undefined + "<br>" +
typeof null + "<br>" +
(null === undefined) + "<br>" +
(null == undefined);
</script>
</body>
</html>


继续学习
||
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php中文网(php.cn)</title> <script type="text/javascript"> function aFunction(iNum1) { if (typeof iNum1 == "number" ){ alert("number"); } if ( typeof iNum1 == "string") { alert("string"); } } aFunction("a"); aFunction(1); </script> </head> <body> </body> </html>
提交重置代码