1、语言特性:
内存泄露:内存没有释放,越堆越多。
垃圾回收(生命周期):
1、局部 很短 在局部中当函数完成时。已经释放了。全局变量在页面关闭的时候才被回收。
2、全局 很长
3、闭包。可长可短,只要这个变量还有用,函数中的局部变量就不会消失。
只要这个变量还有用,函数中所有的局部变量就不会消失。
只要这个变量还有用,整个作用域链上的所有局部变量斗不会消失。
function show(){
var a=1;
var b=1;
document.onclick=function(){
alert(a);
}
} a,b,在show调用后,都不会消失。
b,不消失的原因:
1、稳定
2、速度
作用域链:在子级找这个东西,如果没有找父级。直到找到全局。从底层找到最高层。
递归:把比较大的事情,分散为比较小的事情。【斐铂那锲发明的】
效率非常高,但是重复的太多,影响性能。
解决方法:声明数组,将有的东西存起来。 性能优化:
【1、网络性能
f12 network
yslow,学习工具。
减少Http请求。(文件合并)
代码压缩。
图片懒加载。
2、执行性能】
1、稳定性
2、扩展性
3、性能。
注意:
1、尽量不要用全局变量
2、尽量不要用属性,用变量,属性比较慢
3、循环。
4、尽量用正则
5、尽量用系统自带的。
6、尽量减少dom操作。【指的是运动】,看不到的地方停掉。
7、尽量不要用图片,尽量不要缩放
8、背景图平铺,尽量用大一点的图片。
可选项:
正则更快。
字符串操作比数组快。
<script>标签尽量放倒body的最下面。因为它可以阻塞加载。
css一定要放到上面。

3-0 js基础 语言特性及性能优化的更多相关文章

  1. php8.0正式版新特性和性能优化学习

    前言 PHP团队宣布PHP8正式GA(链接).php的发展又开启了新的篇章,PHP8.0.0版本引入了一些重大变更及许多新特性和性能优化机制.火速学习下~ JIT(Just in Time Compi ...

  2. C++ 语言特性的性能分析

    转载:http://www.cnblogs.com/rollenholt/archive/2012/05/07/2487244.html      大多数开发人员通常都有这个观点,即汇编语言和 C 语 ...

  3. vue2.0.js基础开发使用心得(结合实际项目对数据的增删改查)

    1.首先申明,没有使用vue 的组件,以及脚手架等,都是一些基础语法的使用. ------------------------------------------------------------- ...

  4. Node.js V0.12 新特性之性能优化

    v0.12悠长的开发周期(已经过去九个月了,并且还在继续,是有史以来最长的一次)让核心团队和贡献者们有充分的机会对性能做一些优化. 本文会介绍其中最值得注意的几个. http://www.infoq. ...

  5. Node.js V0.12新特性之性能优化

    v0.12悠长的开发周期(已经过去九个月了,并且还在继续,是有史以来最长的一次)让核心团队和贡献者们有充分的机会对性能做一些优化.本文会介绍其中最值得注意的几个. 支持塞住模式的可写流 现在可写流可以 ...

  6. php7和PHP5对比的新特性和性能优化

    1  抽象语法树( AST) 1)在 PHP5中,从 php 脚本到 opcodes 的执行的过程是: Lexing:词法扫描分析,将源文件转换成 token 流:    Parsing:语法分析,在 ...

  7. js动态加载js文件(js异步加载之性能优化篇)

    1.[基本优化] 将所有需要的<script>标签都放在</body>之前,确保脚本执行之前完成页面渲染而不会造成页面堵塞问题,这个大家都懂. 2.[合并JS代码,尽可能少的使 ...

  8. Go语言实战 - 网站性能优化第一弹“七牛云存储”

    由于用户纷纷反应山坡网的打开速度比较慢,所以两天前我们决定把服务器从linode迁移到阿里云. 整个迁移过程非常平滑,基本上一个小时就完成了.而且阿里云的配套设施提供的也很不错,运行状态监控什么的都有 ...

  9. 你不知道的Node.js性能优化,读了之后水平直线上升

    本文由云+社区发表 "当我第一次知道要这篇文章的时候,其实我是拒绝的,因为我觉得,你不能叫我写马上就写,我要有干货才行,写一些老生常谈的然后加上好多特技,那个 Node.js 性能啊好像 D ...

随机推荐

  1. Mac提示App已损坏 你应该将它移到废纸篓的解决方案

    现象 "Elmedia Player.app"已损坏,打不开. 您应该将它移到废纸篓. 原因 很多朋友们在安装软件时Mac OS系统出现提示"XXXApp 已损坏&quo ...

  2. Elasticsearch 安装的时候,Unsupported major.minor version 51.0问题的解决

    Elasticsearch安装的时候报错 bootstrap/Elasticsearch : Unsupported major.minor version 51.0 网上一般说的方法是,升级或者降级 ...

  3. Intellij IDEA如何在一个窗口同时打开多个Maven项目

    建立父目录,比如fatherProject,并将多个项目放入该父目录fatherProject下 File-Open...打开父目录fatherProject 引入pom.xml,打开Maven Pr ...

  4. StarUML3.0选择不同类型图和导出

    StarUML(简称SU),是一种创建UML类图,生成类图和其他类型的统一建模语言(UML)图表的工具. 可绘制9款UML图:用例图.类图.序列图.状态图.活动图.通信图.构件图.部署图以及复合结构图 ...

  5. 遍历datatable的几种方法(C# )

    转载 遍历datatable的方法2009-09-08 10:02方法一:      DataTable dt = dataSet.Tables[0];      for(int i = 0 ; i  ...

  6. Android 异步网络图片加载

    ListView异步加载图片 http://www.eoeandroid.com/forum.php?mod=viewthread&tid=161586 [Android分享] ListVie ...

  7. openstack kolla 部署---不同的节点采用不同的物理接口

    在 /etc/kolla/globals.yml 文件中删除 neutron_external_interface  tunnel_interface  api_interface  storage_ ...

  8. ES5和ES6作用域

    ES5和ES6作用域 <!DOCTYPE html> <html lang="en"> <head> <meta charset=&quo ...

  9. 为IEnumerable类型添加Add方法

    IEnumerable类型原生是没有Add方法的,你可以用Contact方法去为它添加元素, 1 items = items.Concat(new[] { "foo" }); 也可 ...

  10. mysql导入大批量数据出现MySQL server has gone away的解决方法

    因工作需要,需要导入一个200M左右的sql到user库 执行命令 mysql> use user Database changed mysql> source /tmp/user.sql ...