JS-04-undefined、null和NaN的區別
阿新 • • 發佈:2021-08-03
JS-04-undefined、null和NaN的區別
1.三者的資料型別不同
- undefined:Undefined
- null:Object
- NaN:Number
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>undefined、null和NaN的區別</title> </head> <body> <script type="text/javascript"> //undefined null NaN //三者的資料型別不同 alert(typeof undefined);//undefined alert(typeof null);//object alert(typeof NaN);//number </script> </body> </html>
2.比較三者的值是否相等
1.1” == “和 ” === “
在JS中有兩個比較特殊的運算子:
- ”==“ 是等同運算子,可以判斷兩個元素的值是否相等。
- ”===“是全等運算子,既可以判斷兩個元素的值是否相等,又可以判斷兩個元素的資料型別是否相等。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>undefined、null和NaN的區別</title> </head> <body> <script type="text/javascript"> //"=="是等同運算子 //"==="是全等運算子 alert(1 == true);//true alert(1 === true);//false </script> </body> </html>
1.1用“==”比較underfined、null、和NaN
用”==“比較underfined、null、和NaN的值:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>undefined、null和NaN的區別</title> </head> <body> <script type="text/javascript"> //undefined null NaN //null和undefined可以等同 alert("undefined : null = " + (undefined == null));//true alert("undefined : NaN = " + (undefined == NaN));//false alert("null : NaN = " + (null == NaN));//false </script> </body> </html>
null和undefined可以等同。
1.2用“===”比較underfined、null、和NaN
“===”可以同時比較兩個元素的值和資料型別
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>undefined、null和NaN的區別</title>
</head>
<body>
<script type="text/javascript">
//undefined null NaN
//用”===“比較
alert("undefined : null = " + (undefined === null));//false
alert("undefined : NaN = " + (undefined === NaN));//false
alert("null : NaN = " + (null === NaN));//false
</script>
</body>
</html>
3.三者都代表”無“
用Boolean()函式分別轉換三者:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>undefined、null和NaN的區別</title>
</head>
<body>
<script type="text/javascript">
//undefined null NaN
alert(Boolean(undefined));//false
alert(Boolean(null));//fasle
alert(Boolean(NaN));//false
</script>
</body>
</html>
4.總結
- undefined、null和NaN三者的資料型別不同。
- undefined和null的值相等,其餘都不等。
- 三者都代表”無“,用Boolean()函式轉換三者結果都是fasle。