如何在 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 中的值是否類似物件。
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP