JavaScript - typeof 運算子

歡迎,有志於成為程序員的各位!今天,我們將踏上一段令人興奮的旅程,進入JavaScript的世界,特別是探討typeof運算子。別擔心你對編程還是新手;我會一步一步地引導你理解這個概念,就像這些年來我對無數學生所做的那樣。所以,拿起你最喜欢的飲料,放鬆身心,讓我們一起深入探讨吧!

JavaScript - typeof Operator

typeof 運算子

想像你是一個在JavaScript世界中的偵探,你的工作是識別不同數據的类型。這正是typeof運算子的作用!它就像一個放大鏡,幫助我們確定JavaScript中的一個值或表達式的类型。

語法

使用typeof運算子就像吃派一樣簡單(誰不愛派呢?)。以下是如何使用它:

typeof 操作數
// 或者
typeof(操作數)

這兩種形式的工作方式相同,所以選擇哪一種看起來更漂亮。我個人偏好第一種,因為它打的字少,我們都知道,程序員總是追求效率!

typeof 運算子返回的數據類型

現在,讓我們看看typeof可以識別的不同类型。這就像JavaScript中的數據風味菜單:

數據類型 typeof 返回
Number "number"
String "string"
Boolean "boolean"
Symbol "symbol"
Undefined "undefined"
Null "object"
Object "object"
Function "function"
BigInt "bigint"

如果有些看起來不熟悉,別擔心。我們將通過示例一一探討,讓你驚呼“啊哈!”

使用JavaScript typeof 運算子檢查數字類型

我們從數字開始。在JavaScript中,數字就像是數學操作的基石。

console.log(typeof 42);        // "number"
console.log(typeof 3.14);      // "number"
console.log(typeof -10);       // "number"
console.log(typeof Infinity);  // "number"
console.log(typeof NaN);       // "number"

驚喜!即使是InfinityNaN(不是數字)也被認為是數字。這就像把熱狗稱為三明治一樣——有點意外,但這就是JavaScript的風格!

使用JavaScript typeof 運算子檢查字符串類型

字符串就像是數據的禮盒包装——它們包含文本內容。

console.log(typeof "Hello, World!");  // "string"
console.log(typeof '42');             // "string"
console.log(typeof ``);               // "string"

注意'42'在引號中是字符串,而不是數字。這就像給數字穿上文本的服裝!

使用JavaScript typeof 運算子檢查布爾類型

布爾值是編程中的是/否,真/假。它們就像開關——開或關。

console.log(typeof true);   // "boolean"
console.log(typeof false);  // "boolean"
console.log(typeof (1 > 2)); // "boolean"

最後一個示例顯示比較會導致布爾值。這就像問,“1大於2嗎?”並直接得到“不,不對!”(false)的回應。

使用JavaScript typeof 運算子檢查符號類型

符號是唯一的標識符,就像派對上每個人都有的不同名字標籤。

console.log(typeof Symbol('unique'));  // "symbol"

現在不必過於關心符號。它們是ES6中的酷炫孩子,但我們不會在每個JavaScript派對上都看到它們。

使用JavaScript typeof 運算子檢查未定義和空值

這裡有些棘手,就像編程世界中的魔術一樣。

console.log(typeof undefined);  // "undefined"
console.log(typeof null);       // "object"

等等,什麼?null是對象?這其實是JavaScript中的一個長期存在的bug,但它已經存在了這麼久,修復它可能會破壞現有的代碼。這就像你喜歡的咖啡館中那個搖搖欲墜的桌子——討厭,但換掉它可能會得罪常客。

使用JavaScript typeof 運算子檢查對象類型

對象就像是可以包含各種屬性和方法的容器。

console.log(typeof {});           // "object"
console.log(typeof []);           // "object"
console.log(typeof new Date());   // "object"

是的,數組也是對象!這就像說購物清單是一種文件——從技術上講是正確的,即使這讓人覺得有點奇怪。

使用JavaScript typeof 運算子檢查函數類型

函數就像編程中的動詞——它們做事情!

console.log(typeof function() {});  // "function"
console.log(typeof console.log);    // "function"

函數有自己特殊的类型。這是JavaScript在說,“你很特別,函數。你有自己的類別!”

使用JavaScript typeof 運算子檢查 BigInt 類型

BigInt是個新來的,用於處理非常大非常大的數字。

console.log(typeof 1n);  // "bigint"
console.log(typeof BigInt(1));  // "bigint"

把BigInt想像成數字的重量級冠軍——當普通數字不夠大時,它就派上用場!

JavaScript typeof 運算子在實時開發中的應用

在現實世界的編程中,typeof通常用於在操作之前進行類型檢查。這就像在開始烹飪之前檢查是否有正確的食材。

function safeAdd(a, b) {
if (typeof a === "number" && typeof b === "number") {
return a + b;
} else {
return "Error: Both arguments must be numbers";
}
}

console.log(safeAdd(5, 10));  // 15
console.log(safeAdd("5", 10));  // "Error: Both arguments must be numbers"

這個函數在加法之前檢查兩個輸入是否都是數字。這就像夜總會的保鏢在“只有數字”的俱樂部門口一樣!

JavaScript 數組和 typeof 運算子

這裡有一個要注意的地方——記住數組也是對象。讓我們看看它是如何工作的:

console.log(typeof [1, 2, 3]);  // "object"

那麼我們如何檢查數組?我們使用一個特殊的方法:

console.log(Array.isArray([1, 2, 3]));  // true
console.log(Array.isArray({a: 1}));     // false

這就像有一個專門用來偵測數組形狀對象的特殊探测器!

以上就是JavaScript中的typeof運算子的介紹。記住,熟能生巧,所以多玩玩這些示例。在你意識到之前,你將會像專家一樣進行類型檢查!快樂編程,願你的變量總是你期望的类型!

Credits: Image by storyset