內建型別
JavaScript 中有七種內建基本型別和一種物件型別:
基本型別
- Undefined:表示未定義的值。變量聲明後但未賦值時,值為
undefined
。let a;
console.log(a); // undefined - Null:表示空或不存在的值,是一個唯一的值。
let b = null;
console.log(b); // null - Boolean:表示布林值,可以是
true
或false
。let isTrue = true;
let isFalse = false; - Number:表示數字,包括整數和浮點數。
let num = 42;
let pi = 3.14; - String:表示字符串,可以用單引號或雙引號括起來。
let str1 = 'Hello';
let str2 = "World"; - Symbol:表示唯一的標識符,通常用於物件屬性的鍵。
let sym = Symbol('unique');
- BigInt:表示任意精度的整數。
let bigInt = 1234567890123456789012345678901234567890n;
物件型別
- Object:表示複合數據結構,包含屬性和方法。
let obj = {
name: 'Alice',
age: 30
};
型別轉換
JavaScript 支持隱式和顯式的型別轉換。
隱式轉換
JavaScript 會在需要的時候自動進行型別轉換。let x = '5' + 5; // '55',數字轉為字符串
let y = '5' * 2; // 10,字符串轉為數字
顯式轉換
可以使用內建函數進行顯式轉換。
let num = Number('123'); // 字符串轉為數字
let str = String(123); // 數字轉為字符串
let bool = Boolean(1); // 數字轉為布林值
自訂型別
JavaScript 不支持傳統意義上的類型定義,但可以使用物件和函數來模擬類和類型。
使用函數創建自訂型別
function Person(name, age) {
this.name = name;
this.age = age;
}
let alice = new Person('Alice', 30);
使用 ES6 類創建自訂型別
class Person {
constructor(name, age) {
this.name = name;
this.age = age;
}
}
let bob = new Person('Bob', 25);
元組型別
JavaScript 沒有內建的元組型別,但可以使用陣列來模擬元組。
let tuple = ['Alice', 30];
let name = tuple[0];
let age = tuple[1];
集合型別
Set
是一種集合數據結構,存儲不重複的值。
let set = new Set();
set.add(1);
set.add(2);
set.add(1); // 不會添加重複的值
console.log(set.has(1)); // true
console.log(set.size); // 2
陣列型別
陣列是一種用來存儲有序數據的集合。
let arr = [1, 2, 3, 4, 5];
console.log(arr[0]); // 1
arr.push(6);
console.log(arr.length); // 6
字典型別
JavaScript 的 Object
和 Map
可以用作字典。
Object 作為字典
let dict = {
name: 'Alice',
age: 30
};
console.log(dict['name']); // Alice
console.log(dict.age); // 30
Map 作為字典
Map
是一種鍵值對集合,任何類型的值都可以作為鍵。
let map = new Map();
map.set('name', 'Alice');
map.set('age', 30);
console.log(map.get('name')); // Alice
console.log(map.has('age')); // true
console.log(map.size); // 2
這些章節涵蓋了 JavaScript 中的各種型別和相關操作,為理解和使用 JavaScript 提供了基礎知識。