知识点
- 如何实现?
- 字符串
+=
操作的性能。 - 数组
join
的性能。 - 整数最大值。
- 字符串最大长度。
具体分析
如何实现
有 2 种方式,一种使用字符串+=
操作,一种使用数组join
操作。从测试结果来看,后者性能更高。 ```typescript // 方法1,普通for循环 function repeat1(str: string, count: number): string { let result = “”; for (let i = 0; i < count; i += 1) { result += str; } return result; }
// 方法2,数组join function repeat2(str: string, count: number) { return new Array(count).join(str); }
// 测试输入 let str = “fy”; let count = 1000000;
// 性能结果 console.time(“0”); str.repeat(count); // 0.069 ms console.timeEnd(“0”);
console.time(“1”); repeat1(str, count); // 76.201 ms console.timeEnd(“1”);
console.time(“2”); repeat2(str, count); // 11.820 ms console.timeEnd(“2”); ```
字符串 +=
操作性能
数组 join
性能
整数最大值
由于在 JavaScript 中所有的数字使用 64 位双精度浮点数表示。其中包含 1 位符号位,11 位指数位,52位尾数位;并且尾数第一位隐含 1,共53位尾数。
因此可以表示的值区间为:。不包括边界值。
也因此,最大整数为:,这也是
Number.MAX_SAFE_INTEGER
的值。
字符串最大长度
字符串的最大长度,受到字符串下标的影响,其最大长度也是 Number.MAX_SAFE_INTEGER
。
参考资料
- Number.MAX_SAFE_INTEGER - JavaScript | MDN [https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Number/MAX_SAFE_INTEGER]