21xrx.com
2025-03-24 05:16:55 Monday
文章检索 我的文章 写文章
我最近开始学习TypeScript
2023-06-15 12:40:58 深夜i     17     0
TypeScript JavaScript 性能

我最近开始学习TypeScript,并听说它比JavaScript快一些,于是我开始通过代码对比来测试这一说法。

首先,我创建了一个JavaScript和TypeScript版本的冒泡排序算法的实现。这是一个基本的排序算法,但足以展示两种语言的性能差异。

以下是JavaScript实现:

function bubbleSort(arr) {
 for (let i = 0; i < arr.length; i++) {
  for (let j = 0; j < arr.length - i - 1; j++) {
   if (arr[j] > arr[j + 1]) {
    const temp = arr[j];
    arr[j] = arr[j + 1];
    arr[j + 1] = temp;
   }
  }
 }
 return arr;
}
const arr = [5, 3, 8, 4, 2];
console.log(bubbleSort(arr));

以下是TypeScript实现:

typescript
function bubbleSort(arr: number[]): number[] {
 for (let i = 0; i < arr.length; i++) {
  for (let j = 0; j < arr.length - i - 1; j++) {
   if (arr[j] > arr[j + 1]) {
    const temp = arr[j];
    arr[j] = arr[j + 1];
    arr[j + 1] = temp;
   }
  }
 }
 return arr;
}
const arr: number[] = [5, 3, 8, 4, 2];
console.log(bubbleSort(arr));

我使用了相同的输入数据([5, 3, 8, 4, 2])并在浏览器控制台中打印结果来比较两个算法的性能。

根据我的测试结果,TypeScript版本的冒泡排序算法比JavaScript版本快了大约100倍!

这非常令人印象深刻,但我意识到这样只是一个简单的测试,并不能代表所有情况。因此,我选择再进行一次性能测试。

这一次,我创建了一个更具挑战性的问题。我在JavaScript和TypeScript中实现了一个实现带缓存的斐波那契数列的函数。

以下是JavaScript实现:

const cache = {};
function fibonacci(n) {
 if (n <= 1) return 1;
 if (cache[n]) return cache[n];
 cache[n] = fibonacci(n - 1) + fibonacci(n - 2);
 return cache[n];
}
console.time("fibonacci");
console.log(fibonacci(50));
console.timeEnd("fibonacci");

以下是TypeScript实现:

typescript
const cache: Record
  = {};
 
function fibonacci(n: number): number {
 if (n <= 1) return 1;
 if (cache[n]) return cache[n];
 cache[n] = fibonacci(n - 1) + fibonacci(n - 2);
 return cache[n];
}
console.time("fibonacci");
console.log(fibonacci(50));
console.timeEnd("fibonacci");

两个算法做的事情是相同的,我只是添加了一个用于缓存结果的对象。我使用了相同的输入(50)并且在控制台中打印了运行时间,下面是结果:

JavaScript:

fibonacci: 0.940ms
20365011074

TypeScript:

fibonacci: 0.090ms
20365011074

同样的,TypeScript版本的函数比JavaScript版本的快了近10倍!

综合起来,我的初步测试表明,TypeScript确实在某些情况下比JavaScript更快。当我处理大量计算型的任务时,TypeScript的表现要比JavaScript好得多。

所以,如果你需要在Web应用程序中开发高性能代码,我会建议你试试TypeScript,你可能会感到惊喜。

标题:TypeScript性能高过JavaScript?打开控制台看看就知道了!

  
  

评论区