刷算法题必备: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。

相关新闻

五分钟装好通达信缠论插件:笔和中枢自动画出(ChanlunX 指南)

五分钟装好通达信缠论插件:笔和中枢自动画出(ChanlunX 指南)

五分钟装好通达信缠论插件:笔和中枢自动画出(ChanlunX 指南) 【免费下载链接】ChanlunX 缠中说禅炒股缠论可视化插件 项目地址: https://gitcode.com/gh_mirrors/ch/ChanlunX 通达信缠论插件 ChanlunX 基于 TDXDLL 插件函数&#xff0…

2026/8/22 22:25:01 阅读更多 →
Joy-Con Toolkit 上手指南:Joy-Con 颜色自定义、电池查看与手柄调试

Joy-Con Toolkit 上手指南:Joy-Con 颜色自定义、电池查看与手柄调试

Joy-Con Toolkit 上手指南:Joy-Con 颜色自定义、电池查看与手柄调试 【免费下载链接】jc_toolkit Joy-Con Toolkit 项目地址: https://gitcode.com/gh_mirrors/jc/jc_toolkit Joy-Con Toolkit 是一款面向 Nintendo Switch Joy-Con 手柄的开源工具集&#xff…

2026/8/22 22:24:00 阅读更多 →
从台湾下的 EPUB 读起来费劲?TradSimpChinese 帮你在 Calibre 里把繁简转换做掉

从台湾下的 EPUB 读起来费劲?TradSimpChinese 帮你在 Calibre 里把繁简转换做掉

从台湾下的 EPUB 读起来费劲?TradSimpChinese 帮你在 Calibre 里把繁简转换做掉 【免费下载链接】TradSimpChinese Calibre plugin to convert between Traditional and Simplified Chinese 项目地址: https://gitcode.com/gh_mirrors/tr/TradSimpChinese 上…

2026/8/22 22:24:00 阅读更多 →

最新新闻

Type-C边充边听音频转接器

Type-C边充边听音频转接器

如今几乎所有主流手机、掌机都取消了3.5mm耳机孔,Type-C转3.5mm音频转接器成了数码玩家的刚需配件。但市面上不少廉价转接器都存在明显短板:插手机听歌时电量掉得飞快、直播开麦就断连、手游时声音延迟高还没法同时补电,这些体验问题的核心往…

2026/8/24 2:57:59 阅读更多 →
Stable Diffusion WebUI Forge 完整实战:从一键安装到显存调优的落地流程

Stable Diffusion WebUI Forge 完整实战:从一键安装到显存调优的落地流程

Stable Diffusion WebUI Forge 完整实战:从一键安装到显存调优的落地流程 【免费下载链接】stable-diffusion-webui-forge 项目地址: https://gitcode.com/GitHub_Trending/st/stable-diffusion-webui-forge 第一次跑 Stable Diffusion 卡在建环境、报显存错…

2026/8/24 2:57:59 阅读更多 →
Android相机YUV转RGB性能优化:GPU着色器与libyuv方案深度解析

Android相机YUV转RGB性能优化:GPU着色器与libyuv方案深度解析

1. 项目概述:一个Android相机开发中的性能瓶颈最近在优化一个Android相机应用时,遇到了一个典型的性能问题:从相机预览回调中获取到的YUV数据,需要实时转换成RGB格式以便进行后续的图像处理或显示。我尝试了多种方法,其…

2026/8/24 2:57:59 阅读更多 →
OpenMetadata 快速上手指南:5分钟跑通你的数据目录

OpenMetadata 快速上手指南:5分钟跑通你的数据目录

OpenMetadata 快速上手指南:5分钟跑通你的数据目录 【免费下载链接】OpenMetadata The Open Context Layer for Data and AI , OpenMetadata is the open platform for building trusted data context and business semantics for humans, AI assistants, and agent…

2026/8/24 2:57:59 阅读更多 →
SVM与KNN算法实战:基于红酒数据集的分类模型对比与优化

SVM与KNN算法实战:基于红酒数据集的分类模型对比与优化

1. 项目缘起:从数据到风味,一次经典的分类实践 最近在整理机器学习的学习笔记,翻到了一个非常经典的入门项目——红酒分类。这个项目之所以经典,是因为它几乎涵盖了监督学习入门阶段的所有核心要素:一个清晰的多分类问…

2026/8/24 2:57:59 阅读更多 →
抽象工厂模式实战:Java代码示例与Spring应用解析

抽象工厂模式实战:Java代码示例与Spring应用解析

最近在项目重构中,我们遇到了一个典型问题:系统需要支持多种数据库(如MySQL、Oracle)和多种缓存服务(如Redis、Memcached),并且未来可能增加新的数据库或缓存类型。如果为每一种组合&#xff08…

2026/8/24 2:56:58 阅读更多 →

日新闻

前端内容安全与依赖审计实践

前端内容安全与依赖审计实践

前端内容安全与依赖审计实践 前端安全依赖分层防护。没有任何单一配置能替代输出编码、权限校验和依赖更新。 把不可信内容当作数据 默认使用框架的转义能力;确需渲染 HTML 时,先在服务端或可信的客户端库中进行白名单过滤。避免把用户输入直接赋给 inne…

2026/8/24 1:08:15 阅读更多 →
Windows登录密码存储机制全解析:从哈希算法到安全加固实战

Windows登录密码存储机制全解析:从哈希算法到安全加固实战

1. 项目概述:Windows登录密码的“黑匣子”每次你按下CtrlAltDel,输入密码,然后看到那个熟悉的桌面,这背后发生了一系列复杂而精密的操作。作为一名长期与Windows系统打交道的从业者,我经常被问到:“我的密码…

2026/8/24 1:08:15 阅读更多 →
AI面试系统安全挑战与解决方案

AI面试系统安全挑战与解决方案

1. 项目概述:AI面试系统的安全挑战去年参与某跨国企业AI面试系统部署时,遇到一个典型案例:候选人在视频面试中无意提到竞争对手产品名称,系统竟自动将该信息关联到企业知识库并生成竞品分析报告。这个看似"智能"的功能&…

2026/8/24 1:08:15 阅读更多 →

周新闻

[光学原理与应用-521]:对光的错误理解与纠偏

[光学原理与应用-521]:对光的错误理解与纠偏

首先光是一种能量的载体和形态,宏观上观察到的光是由无数个微观的光量子组成的,每个光子在产生的瞬间,其在真空的空间中以确定不变的速度沿着一个初始的方向一直向前,在微观层面,每个光量子的运动轨迹是以波函数所展现…

2026/8/24 0:06:02 阅读更多 →
SIP通话转接原理与REFER方法实战解析

SIP通话转接原理与REFER方法实战解析

1. 通话转接不是“挂断再拨号”,而是SIP会话的动态重定向你有没有遇到过这样的场景:客服坐席A正在和客户通电话,突然需要把这通对话无缝转给专家坐席B,客户完全感知不到中间的断连——既没听到忙音,也没被要求重新拨号…

2026/8/24 0:20:20 阅读更多 →
Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

1. 为什么选择Kolla-ansible来部署单节点OpenStack?如果你正在寻找一种能把OpenStack从“概念”快速变成“可用的实验环境”的方法,那么Kolla-ansible几乎是当前最主流、最省心的选择。我见过太多人卡在手动编译依赖、配置服务、处理版本冲突的泥潭里&am…

2026/8/24 0:14:11 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/23 18:47:06 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/23 12:10:44 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/22 3:22:48 阅读更多 →