如何在 JavaScript 中檢查一個值是否類似物件?


JavaScript 中,**類似物件**的值是指既不是原始值也不是未定義的值。類似物件的值是任何不是原始值的值,包括函式、陣列和物件。在 JavaScript 中,有多種方法可以檢查一個值是否類似物件。在本文中,我們將介紹三種在 JavaScript 中檢查值是否類似物件的方法。

使用 typeof 運算子

**typeof** 運算子是 JavaScript 中一個內建運算子,用於檢查值的型別。typeof 運算子返回一個字串,表示值的型別。typeof 運算子可用於檢查 JavaScript 中的值是否類似物件。

示例 1

<!doctype html>
<html>
<head>
   <title>Examples</title>
</head>
<body>
   <div id="result1"></div>
   <div id="result2"></div>
   <div id="result3"></div>
   <script>
      document.getElementById("result1").innerHTML ="typeof {}: " + typeof {};
      document.getElementById("result2").innerHTML ="typeof []: " + typeof [];
      document.getElementById("result3").innerHTML ="typeof function(){}: " + typeof function(){};
   </script>
</body>
</html>

以下是上述程式碼片段的詳細解釋

在 script 標籤中的第一個語句中,我們檢查空物件 {} 的型別。typeof 運算子對於空物件返回字串 "object"。在第二個語句中,我們檢查空陣列 [] 的型別。typeof 運算子對於空陣列返回字串 "object"。在第三個語句中,我們檢查匿名函式 function(){} 的型別。typeof 運算子對於匿名函式返回字串 "function"。

使用 instanceof 運算子

instanceof 運算子是 JavaScript 中一個內建運算子,用於檢查一個值是否是建構函式的例項。instanceof 運算子返回一個布林值,如果該值是建構函式的例項,則為 true,否則為 false。instanceof 運算子可用於檢查 JavaScript 中的值是否類似物件。

示例 2

<!doctype html>
<html>
<head>
   <title>Examples</title>
</head>
<body>
   <div id="result1"></div>
   <div id="result2"></div>
   <div id="result3"></div>
   <script>
      document.getElementById("result1").innerHTML = "Is {} an instance of Object: " + ({} instanceof Object);
      document.getElementById("result2").innerHTML = "Is [] an instance of Array: " +([] instanceof Array);
      document.getElementById("result3").innerHTML ="Is function(){} is an instance of Function: " + (function(){} instanceof Function);
   </script>
</body>
</html>

在 script 標籤中,第一個語句檢查空物件 {} 是否是 Object 建構函式的例項。instanceof 運算子對於空物件返回布林值 true。第二個語句檢查空陣列 [] 是否是 Array 建構函式的例項。instanceof 運算子對於空陣列返回布林值 true。第三個語句檢查匿名函式 function(){} 是否是 Function 建構函式的例項。instanceof 運算子對於匿名函式返回布林值 true。

Object.prototype.toString() 方法

**Object.prototype.toString()** 方法是 JavaScript 中一個內建方法,用於將物件轉換為字串。Object.prototype.toString() 方法可用於檢查 JavaScript 中的值是否類似物件。

示例 3

<!doctype html>
<html>
<head>
   <title>Examples</title>
</head>
<body>
   <div id="result1"></div>
   <div id="result2"></div>
   <div id="result3"></div>
   <script>
      document.getElementById("result1").innerHTML = Object.prototype.toString.call({})
      document.getElementById("result2").innerHTML = Object.prototype.toString.call([])
      document.getElementById("result3").innerHTML = Object.prototype.toString.call(function(){})
   </script>
</body>
</html>

在 script 標籤中的第一個語句中,我們使用 Object.prototype.toString() 方法將空物件 {} 轉換為字串。Object.prototype.toString() 方法對於空物件返回字串 "[object Object]"。

在 script 標籤中的第二個語句中,我們使用 Object.prototype.toString() 方法將空陣列 [] 轉換為字串。Object.prototype.toString() 方法對於空陣列返回字串 "[object Array]"。

在第三個語句中,我們使用 Object.prototype.toString() 方法將匿名函式 function(){} 轉換為字串。Object.prototype.toString() 方法對於匿名函式返回字串 "[object Function]"。

結論

在本教程中,我們介紹了三種不同的方法來檢查 JavaScript 中的值是否類似物件。我們介紹了 typeof 運算子、instanceof 運算子和 Object.prototype.toString() 方法。所有這些方法都可以用來檢查 JavaScript 中的值是否類似物件。

更新於:2022年6月24日

瀏覽量 105

啟動您的 職業生涯

完成課程獲得認證

開始學習
廣告