如何在 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 中的值是否類似物件。