function myParseInt(str: string): number {
let result = NaN;
for (let i = 0; i < str.length; i++) {
const dec: number = str.charCodeAt(i);
if (dec < 48 || dec > 57) break;
if(isNaN(result)) result = 0;
const value = dec - 48;
result = result * 10 + value;
}
return result;
}
function myParseFloat(str: string): number {
let result = NaN;
let isDecimal = false; // 小数点
let decimalIndex = 0; // 小数点第几位
const N = 1000;
for (let i = 0; i < str.length; i++) {
const dec: number = str.charCodeAt(i);
const isPoint = dec === 46;
if (isPoint && isDecimal) {
// 再次遇到小数点直接返回
break;
} else if (isPoint) {
isDecimal = true;
continue;
}
if (dec < 48 || dec > 57) break;
if (isNaN(result)) result = 0;
const value = dec - 48;
if (!isDecimal) {
result = result * 10 + value;
} else {
decimalIndex++;
result = (result * N + (value / 10 ** decimalIndex) * N) / N;
}
}
return result;
}
console.log(myParseInt("12.22")); // 12
console.log(myParseFloat("0.22")); // 0.22
js 实现简单的parseInt和parseFloat
转载本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。

提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
JS拖拽功能的简单实现以及课程表拖拽排课
利用浏览器提供的拖拽API实现拖拽功能
拖拽 事件处理 拖拽操作 拖拽事件 -
Node.js调用DeepSeek Api 实现本地智能聊天的简单应用
Node.js调用DeepSeek API 在本地聊天使用指南
Node.js DeepSeek -
javaweb 项目pdf.js和print.js 实现pdf预览和批量打印
pdf文件预览,直接批量打印,前后端代码实现
文件流 压缩版 官网 pdfjs printjs