恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

刷算法题必备:TypeScript 核心语法与数据结构速查手册

  • 首页
  • 资讯中心
  • /
  • 刷算法题必备:TypeScript 核心语法与数据结构速查手册

相关资讯

Papermerge 文档管理系统 Docker 部署完整指南 2026/8/22 22:19:13
subfinder 字幕查找教程:一条命令为整季剧集批量配好字幕 2026/8/22 22:19:13
杰理之AUX当USB mic 立体声输入【篇】 2026/8/22 22:19:13

最新资讯

LTX-2.5 V2版:同步音画、多镜头连贯的AI视频神器! 更清晰、更可控
【调晶振别死磕频率参数,搞定阻抗才是稳频的核心】
【预测模型】基于量子粒子群算法优化LSTM实现短期电力负荷预测matlab代码
基于SpringBoot企业数据资产登记系统设计与开发
嵌入式厨房空调如何避坑 | 从业十年研发工程师教你选
整体充磁:一种被规模化「逼」出来的工艺路线

今日推荐

markdown-it-vue 踩坑排障:从安装到渲染的 6 个高频问题快速讲清
多尺度智能体控制:从宏观密度场到微观决策的架构与实践
CUBE标准:统一AI智能体评测的度量衡与架构解析

本周热门

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码
【双层规划,节点出清价,绿证交易,CVaR方法】两级电力市场环境下计及风险的省间交易商最优购电模型附Matlab代码
隐式mpc+自适应mpc+时变mpc,线性时变模型预测控制附Simulink仿真

本月精选

如何用DamaiHelper实现演唱会门票的智能自动化抢购:完整技术解决方案指南
第4篇:59 倍性能差距的索引瓶颈定位——一次教科书级的全表扫描调优
终极歌词批量下载神器:5分钟解决离线音乐库歌词同步难题

刷算法题必备:TypeScript 核心语法与数据结构速查手册

发布时间:2026/8/22 22:24:13
刷算法题必备:TypeScript 核心语法与数据结构速查手册 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。

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号