在 javascript 中,判斷數據類型的方法有三種:typeof 運算符返回一個表示變量數據類型的字符串。instanceof 運算符檢查一個對象是否屬于一個特定的構造函數。object.prototype.tostring.call 方法返回一個表示變量類型的字符串,比 typeof 更準確。
如何判斷 JavaScript 中的數據類型
在 JavaScript 中,判斷數據類型是一個常見任務。以下介紹幾種常用方法:
typeof 運算符
typeof
運算符返回一個字符串,表示變量的數據類型。它是最簡單的方法,但它不能區分某些類似的數據類型。
語法:
<code>typeof variable;</code>
登錄后復制
例如:
<code>console.log(typeof "Hello"); // "string" console.log(typeof 123); // "number" console.log(typeof true); // "boolean" console.log(typeof null); // "object" (錯誤地識別為對象)</code>
登錄后復制
instanceof 運算符
instanceof
運算符檢查一個對象是否屬于一個特定的構造函數。它對于區分數組、函數和日期對象等復雜數據類型非常有用。
語法:
<code>variable instanceof constructor;</code>
登錄后復制
例如:
<code>console.log([] instanceof Array); // true console.log(function() {} instanceof Function); // true console.log(new Date() instanceof Date); // true</code>
登錄后復制
Object.prototype.toString.call 方法
Object.prototype.toString.call
方法返回一個表示變量類型的字符串。它比typeof
運算符更準確,可以區分數組、函數和日期對象。
語法:
<code>Object.prototype.toString.call(variable);</code>
登錄后復制
例如:
<code>console.log(Object.prototype.toString.call([])); // "[object Array]" console.log(Object.prototype.toString.call(function() {})); // "[object Function]" console.log(Object.prototype.toString.call(new Date())); // "[object Date]"</code>
登錄后復制
注意事項
typeof
運算符會錯誤地將null
識別為對象。
instanceof
運算符不能區分原生構造函數和自定義構造函數。
Object.prototype.toString.call
方法可以提供更準確的數據類型信息,但它的語法相對復雜。