JS性能细节学习初步总结
1,声明变量要赋初值
2,尽量避免声明全局变量,可以减少与系统的重名
3,当编写大量js代码时,难免会遇到命名冲突,这是可以通过模拟命名空间方式
来避免冲突
4,尽量避免使用全局变量,搜索全局变量是会一层一层的搜索每个作用域范围,
耗时,低效。
5,使用减值循环或者优化循环条件,不要再循环条件中写i<xxx.Length,而要用一
个变量来代替,i<len.因为每次循环都会执行计算length,var i=0也拿到外面
去。
6,避免使用eval(“alert(10);”) setInterval("myFunc();",1000)这种
重解析的代码,低效!
7,使用原生的方法,比如内置的join() reverse() 使用这些浏览器本里本来
就有的方法,不要用自己写的myJoin之类的,性能低,原生方法都是用c或者C
++写的,性能高
8,尽可能使用switch来代替多个if else
9,尽量减少语句数量。
var fragment=document.createDocumentFragment();使用文档碎片,
避免多次更新页面
JS性能细节学习初步总结的更多相关文章
- js性能优化--学习笔记
<高性能网站建设进阶指南>: 1.使用局部变量,避免深入作用域查找,局部变量是读写速度最快的:把函数中使用次数超过一次的对象属性和数组存储为局部变量是一个好方法:比如for循环中的.len ...
- js 性能基准测试工具-告别可能、也许、大概这样更快更省
平时写js经常遇到这样做是不是更快点?但又没有具体简单可测试的工具,最近也倒序看博客园司徒正美 js分类下的文章 [ps:去年灵光一闪,发现看博客园排名前100的博客.按照文章分类倒序看是学习最快的方 ...
- 你不知道的Node.js性能优化,读了之后水平直线上升
本文由云+社区发表 "当我第一次知道要这篇文章的时候,其实我是拒绝的,因为我觉得,你不能叫我写马上就写,我要有干货才行,写一些老生常谈的然后加上好多特技,那个 Node.js 性能啊好像 D ...
- JS做深度学习2——导入训练模型
JS做深度学习2--导入训练模型 改进项目 前段时间,我做了个RNN预测金融数据的毕业设计(华尔街),当时TensorFlow.js还没有发布,我不得已使用了keras对数据进行了训练,并且拟合好了不 ...
- 纯JS实现KeyboardNav(学习笔记)一
纯JS实现KeyboardNav(学习笔记)一 这篇博客只是自己的学习笔记,供日后复习所用,没有经过精心排版,也没有按逻辑编写 GitHub项目源码 预览地址 最终效果 KeyboardNav使用指南 ...
- js callee,caller学习
原文地址:js callee,caller学习 /* * caller 返回一个对函数的引用,该函数调用了当前函数. * 如果函数是由顶层调用的,那么 caller包含的就是 null . * 如果在 ...
- 【09-23】js原型继承学习笔记
js原型继承学习笔记 function funcA(){ this.a="prototype a"; } var b=new funcA(); b.a="object a ...
- js性能优化-事件委托
js性能优化-事件委托 考虑一个列表,在li的数量非常少的时候,为每一个li添加事件侦听当然不会存在太多性能方面的问题,但是当列表非常的长,长到上百上千甚至上万的时候(当然只是一个解释,实际工作中很少 ...
- 客户端JS性能的一些优化的小技巧
下面是一些关于客户端JS性能的一些优化的小技巧:1.[顶]关于JS的循环,循环是一种常用的流程控制.JS提供了三种循环:for(;;). while().for(in).在这三种循环中 for(in) ...
随机推荐
- HTML 学习笔记一
一.学习HTML有什么用? 可以写网页,也就是网站上的一个页面. 二.HTML 代码是写给谁看的? HTML代码是给浏览器看的,当然,强大的人类也能看得懂,如果你觉得不累的话. 三.HTML的结构 & ...
- 问题-DelphiXE10.1 FireDAC联接oracle数据库方法
问题现象:安装oracle后,安装Delphi10.1,放FDConnection1时,选择"Ora"驱动时,提示如下: [FireDAC][Phys][Ora]-315. Can ...
- 【linux】提醒"libc.so.6: version `GLIBC_2.14' not found"系统的glibc版本太低
原文链接:http://www.myexception.cn/linux-unix/1622052.html [linux]提示"libc.so.6: version `GLIBC_2.14 ...
- Android内存机制分析2——分析APP内存使用情况
上面一篇文章说了Android应用运行在dalvik里面分配的堆和栈内存区别,以及程序中什么代码会在哪里运行.今天主要是讲解一下Android里面如何分析我们程序内存使用情况.以便后续可以分析我们程序 ...
- sc58x config
addip=set bootargs ${bootargs} ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}:${hostname}:eth0:off ...
- Office/Access 2013 扩展支持xbase/DBF 文件
最新的Access 2013 安装后,已经不能对dbf文件进行链接读取了,Access 2010以前的版本都可以,如果以前的项目用了Access链接大量的dbf文件的话, 升级Access 2013后 ...
- c# comboBox输出图文效果
核心代码:重写DrawItem事件 void Event_CboDrawItem(object sender, DrawItemEventArgs e) { ) return; var cbo = s ...
- 实战c++中的string系列--string与char*、const char *的转换(data() or c_str())
在project中,我们也有非常多时候用到string与char*之间的转换,这里有个一我们之前提到的函数 c_str(),看看这个原型: const char *c_str(); c_str()函数 ...
- Android Studio 学习笔记(1)
最近从Eclipse转到Android Studio IDE,很多东西需要学习,本文是个记录. 项目结构 在Anroid Studio 中,一个Project 包括多个Module,每个Module下 ...
- 解决mysql开启GTID主从同步出现1236错误问题
解决mysql开启GTID主从同步出现1236错误问题 最近遇到mysql开启gtid做复制时,从库出现1236错误,导致同步无法进行,本文就这问题记录下处理步骤,有关gtid知识在这里不做介 ...