
1. 表示正/負無窮在 TypeScript 中表示正無窮直接使用 Infinity 或 Number.POSITIVE_INFINITY 即可。兩者完全等價推薦直接用 Infinity寫法更短。基本用法letmaxValue:numberInfinity;letalsoMax:numberNumber.POSITIVE_INFINITY;console.log(maxValuealsoMax);// true直接寫 Infinity類型是 number。檢查時用 isFinite() 區分有限數和無窮大。若要表示負無窮使用 -Infinity。2. 獲取字符 ASCII 碼使用 charCodeAt() 方法核心語法constasciiCodeA.charCodeAt(0);// 返回 65實用示例// 1. 獲取字符串第一個字符的碼值conststrHello;console.log(str.charCodeAt(0));// 72 (H)// 2. 遍歷字符串獲取所有碼值for(leti0;istr.length;i){console.log(str.charCodeAt(i));}// 3. 將 ASCII 碼轉回字符反向操作constcharString.fromCharCode(65);// 返回 A特別提醒普通英文/數字直接用 charCodeAt 即可如 ‘a’ - 97。表情符號或特殊漢字如 ‘’推薦使用 codePointAt(0)它能正確處理占用 4 個字節的字符charCodeAt 此時只會返回一半的數據。3. Array使用方法3.1 類型聲明TypeScript 有兩種聲明數組類型的方式// 方式一類型 方括號letnumbers:number[][1,2,3];letstrings:string[][a,b];// 方式二泛型 Array類型letscores:Arraynumber[100,99];// 復雜對象數組interfaceUser{name:string;age:number;}letusers:User[][{name:張三,age:18}];// 聯合類型數組包含多種類型letmixed:(string|number)[][1,hello,2];3.2 增刪改查操作修改原數組常用方法示例 (以 arr [1,2,3] 為例)增尾部? 是push()arr.push(4); // [1,2,3,4]增頭部? 是unshift()arr.unshift(0); // [0,1,2,3]刪尾部? 是pop()arr.pop(); // [1,2]刪頭部? 是shift()arr.shift(); // [2,3]刪/改/插指定位置? 是splice()arr.splice(1, 1); // 從索引1刪1個查值的位置? 否indexOf()arr.indexOf(2); // 1查對象條件? 否find()arr.find(v v 2); // 3包含判斷? 否includes()arr.includes(2); // true3.3創建包含 n 個指定元素的數組一維數組長度為 n填充指定值通用語法new Array(n).fill(值) 或 Array.from({ length: n }, () 值)填充基本類型數字、字符串、布爾值// 方法1fill最常用constarr1:number[]newArray(5).fill(0);// [0, 0, 0, 0, 0]constarr2:string[]newArray(3).fill(a);// [a, a, a]// 方法2Array.from更靈活可基于索引生成不同值constarr3:number[]Array.from({length:5},()0);// [0,0,0,0,0]二維數組n 行 m 列填充指定值核心原則每一行必須是獨立的新數組絕不能共享同一引用。// 通用寫法推薦// 創建一個 3 行 4 列的二維數組所有元素初始為 0constmatrix:number[][]Array.from({length:3},()newArray(4).fill(0));// 輸出// [// [0, 0, 0, 0],// [0, 0, 0, 0],// [0, 0, 0, 0]// ]4. Map使用方法聲明與初始化帶類型必須顯式或隱式地指定鍵Key和值Value的類型。// 顯式聲明類型constmap1newMapstring,number();map1.set(age,25);// OK// map1.set(25, age); // ? 編譯報錯鍵必須是 string增刪改查操作方法示例添加/修改set(key, value)map.set(score, 100)讀取get(key)const val map.get(score)注意返回類型為Value / undefined判斷存在has(key)if (map.has(age)) { ... }刪除delete(key)map.delete(age)清空clear()map.clear()獲取大小size 屬性console.log(map.size)修改 Map 中某個鍵對應的值核心方法只有一個 set() 但它有兩種應用場景直接覆蓋和基于舊值計算新值。覆蓋寫入替換如果新值與舊值無關直接用 set 覆蓋即可。constmapnewMapstring,number();map.set(age,18);// 初始值map.set(age,25);// ? 直接將 age 的值修改為 25注意set 在鍵不存在時會新增在鍵存在時會更新冪等操作。基于舊值計算新值累加、拼接等這是最容易出錯的點因為 TypeScript 嚴格模式下get 返回的類型是 Value | undefined。// 安全寫法推薦constmapnewMapstring,number([[count,10]]);// 使用 ?? 空值合并運算符處理 undefinedmap.set(count,(map.get(count)??0)1);// count 變為 11原理如果鍵不存在get 返回 undefined我們用 ?? 0 兜底避免 NaN。