JavaScript 中“null”和“0”的關係是什麼?


聽起來很奇怪,因為在數學中,如果我們有兩個數 a 和 b,如果 a 不小於 b,那麼可能的情況是 a 大於或等於 b。

但是對於null和“0”,null既不大於“0”,也不等於“0”,但卻大於或等於“0”。(null>=0)

在 JavaScript 中,“0” 等於 false,因為“0” 在進行相等性測試時是一種字串型別,JavaScript 的自動型別轉換機制會將其轉換為數值“0”,而我們知道“0” 代表 false 值。Null − null是一個表示空值或未知值的特殊值。

例如,“let number = null” 這段程式碼表示 number 的值目前為空,以後可能會賦值。我們會遇到一些典型的情況。對於大於(>)、小於(<)和等於(=)運算子,我們會得到布林值 false 作為輸出。但是,當使用大於或等於(>=)運算子時,會得到布林值 true 作為輸出。

這裡出現的問題是,一個值怎麼會既不大於 0,也不等於 0,但卻大於或等於 0 呢?

示例 1

在下面的示例中,我們檢查條件 (null>0)、(null<0) 和 (null == 0),但在所有情況下值都為 false,因此輸出為“這是一個典型關係”。

<!DOCTYPE html>
<html>
<body>
   <script>
      if (null > 0) {
         document.write("null is greater than 0");
      } else if (null < 0) {
         document.write("null is less than 0");
      } else if (null == 0) {
         document.write("null is equal to 0");
      } else {
         document.write("It is a typical relationship");
      }
   </script>
</body>
</html>

示例 2

在下面的示例中,我們檢查條件 if (null>=0) 是否為真。

<!DOCTYPE html>
<html>
<body>
   <script>
      if (null >= 0) {
         document.write("null is greater than 0");
      } else {
         document.write("It is a relationship");
      }
   </script>
</body>
</html>

示例 3

在下面的示例中,我們檢查條件 if (null<=0) 是否為真。

<!DOCTYPE html>
<html>
<body>
   <script>
      if (null <= 0) {
         document.write("null is less than 0");
      } else {
         document.write("It is a relationship");
      }
   </script>
</body>
</html>

示例 4

下面的示例演示了 JavaScript 中 null 和 0 之間的關係。在本例中,我們將使用 typeof() 方法來檢查這兩個變數的型別。

<!DOCTYPE html>
<html lang="en">
<head>
   <title>Relation between null and zero(0)</title>
   <div id="var1"></div>
   <div id="var2"></div>
</head>
<body>
   <script>
      let var1 = 0;
      let var2 = null;
      document.getElementById("var1").innerHTML =
      "Type of 1st variable zero(0) is : " + typeof var1;
      document.getElementById("var2").innerHTML =
      "Type of 2nd variable (null) is : " + typeof var2;
   </script>
</body>
</html>

更新於:2022年12月6日

3K+ 次瀏覽

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告