據(jù)結(jié)構(gòu)速查手冊)
1. 表示正/負(fù)無窮在 TypeScript 中表示正無窮直接使用 Infinity 或 Number.POSITIVE_INFINITY 即可。兩者完全等價(jià)推薦直接用 Infinity寫法更短。基本用法letmaxValue:numberInfinity;letalsoMax:numberNumber.POSITIVE_INFINITY;console.log(maxValuealsoMax);// true直接寫 Infinity類型是 number。檢查時(shí)用 isFinite() 區(qū)分有限數(shù)和無窮大。若要表示負(fù)無窮使用 -Infinity。2. 獲取字符 ASCII 碼使用 charCodeAt() 方法核心語法constasciiCodeA.charCodeAt(0);// 返回 65實(shí)用示例// 1. 獲取字符串第一個(gè)字符的碼值conststrHello;console.log(str.charCodeAt(0));// 72 (H)// 2. 遍歷字符串獲取所有碼值for(leti0;istr.length;i){console.log(str.charCodeAt(i));}// 3. 將 ASCII 碼轉(zhuǎn)回字符反向操作constcharString.fromCharCode(65);// 返回 A特別提醒普通英文/數(shù)字直接用 charCodeAt 即可如 ‘a(chǎn)’ - 97。表情符號或特殊漢字如 ‘’推薦使用 codePointAt(0)它能正確處理占用 4 個(gè)字節(jié)的字符charCodeAt 此時(shí)只會返回一半的數(shù)據(jù)。3. Array使用方法3.1 類型聲明TypeScript 有兩種聲明數(shù)組類型的方式// 方式一類型 方括號letnumbers:number[][1,2,3];letstrings:string[][a,b];// 方式二泛型 Array類型letscores:Arraynumber[100,99];// 復(fù)雜對象數(shù)組interfaceUser{name:string;age:number;}letusers:User[][{name:張三,age:18}];// 聯(lián)合類型數(shù)組包含多種類型letmixed:(string|number)[][1,hello,2];3.2 增刪改查操作修改原數(shù)組常用方法示例 (以 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個(gè)查值的位置? 否indexOf()arr.indexOf(2); // 1查對象條件? 否find()arr.find(v v 2); // 3包含判斷? 否includes()arr.includes(2); // true3.3創(chuàng)建包含 n 個(gè)指定元素的數(shù)組一維數(shù)組長度為 n填充指定值通用語法new Array(n).fill(值) 或 Array.from({ length: n }, () 值)填充基本類型數(shù)字、字符串、布爾值// 方法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]二維數(shù)組n 行 m 列填充指定值核心原則每一行必須是獨(dú)立的新數(shù)組絕不能共享同一引用。// 通用寫法推薦// 創(chuàng)建一個(gè) 3 行 4 列的二維數(shù)組所有元素初始為 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); // ? 編譯報(bào)錯鍵必須是 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 中某個(gè)鍵對應(yīng)的值核心方法只有一個(gè) set() 但它有兩種應(yīng)用場景直接覆蓋和基于舊值計(jì)算新值。覆蓋寫入替換如果新值與舊值無關(guān)直接用 set 覆蓋即可。constmapnewMapstring,number();map.set(age,18);// 初始值map.set(age,25);// ? 直接將 age 的值修改為 25注意set 在鍵不存在時(shí)會新增在鍵存在時(shí)會更新冪等操作?;谂f值計(jì)算新值累加、拼接等這是最容易出錯的點(diǎn)因?yàn)?TypeScript 嚴(yán)格模式下get 返回的類型是 Value | undefined。// 安全寫法推薦constmapnewMapstring,number([[count,10]]);// 使用 ?? 空值合并運(yùn)算符處理 undefinedmap.set(count,(map.get(count)??0)1);// count 變?yōu)?11原理如果鍵不存在get 返回 undefined我們用 ?? 0 兜底避免 NaN。