JavaScript性能优化总结
时间:2022-07-22
本文章向大家介绍JavaScript性能优化总结,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
- +=运算符比+运算符效率高。
- 数字转换成字符串
("" +) > String() > .toString() > new String()
- 展开循环:当循环次数是确定的,消除循环并使用多次函数调用,虽然会让代码看起来不够高端,但是速度往往会更快。
- 减值迭代:在循环中,减值要比增值效率高。
//增值迭代
for (var i = 0; i < 1000; i++)
{
//TODO ...
}
//减值迭代较优
for (var i = 999; i >=0; i--) {
//TODO ...
}
- 使用switch优于if:在分支大于2并且允许使用switch的时候用switch的效率是很高的,因为switch是随机访问的。
- 重复值:任何在多处用到的值都应该抽取为一个常量
var result = (obj.value.value2 + obj.value.value3)*obj.value.value1;
//较优的写法
var value = obj.value;
var result = (value.value2 + value.value3)*value.value1;
- 遍历数组时,缓存数组长度
var len = arr.length;
for (var i = len - 1; i > 0; i--) {
//TODO ...
}
- 释放对象:
//对象
obj = null
对象属性:delete obj.myproperty
数组item:使用数组的splice方法释放数组中不用的item
- 位运算较快:&、|、!、>>、<<
//按位与(&):判断一个数是奇数还是偶数
if (n & 1) {
console.log("n是奇数");
} else {
console.log("n是偶数");
}
//按位或(|):对浮点数向下求整
var num = 1.1 | 0; // 1
//左移(<<)
var num = 2 << 1; // 4
//右移(>>)
var num = 64 >> 1; // 32
- 巧用||和&&布尔运算符
if (myobj) {
doSomething(myobj);
}
//可以替换为:
myobj && doSomething(myobj);
- Nginx性能优化
- linux 如何正确的关闭mongodb
- 运用Aggregator模式实现MapReduce
- vue 2 使用Bus.js进行兄弟(非父子)组件通信 简单案例
- spring boot项目在外部tomcat环境下部署
- 利用Actor实现管道过滤器模式
- SpringBoot整合Quartz定时任务 的简单实例
- 从机器学习学python(一) ——numpy中的shape、tile、argsort
- 剖析响应式编程的本质
- 从机器学习学python(二) ——iteritems、itemgetter、sorted、sort
- 基于MVC理解React+Redux
- JavaScript的IIFE(即时执行方法)
- 从机器学习学python(三) ——数组冒号取值与extend
- 从机器学习学python(四) ——numpy矩阵基础
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 【CCF】线性分类器
- 计数二进制子串
- 6个实例详解如何把if-else代码重构成高质量代码
- leetcode201场周赛
- ASP.NET MVC+LayUI视频上传
- Linux执行tar解压报错tar: Error is not recoverable: exiting now
- elasticSearch学习(四)
- 在美帝的服务器的prefetch和aspera下载比较
- 全面介绍eBPF-概念
- 在ubuntu20上面安装R4
- 冷饭新炒:理解Snowflake算法的实现原理
- Python基础之算数运算符
- 一文带你领略并发编程的内功心法
- HBase监控
- CVPR19-Deep Stacked Hierarchical Multi-patch Network for Image Deblurring