JavaScript的高效优化一直都是我们前端开发中非常重要的工作,也是很多开发人员无法做好的一部分内容,今天我总结了10个优化问题,大家可以参考来做优化,这其中很多问题都是大家经常遇到的哦。

==和===的区别

应避免在if和while条件选择语句中的条件判断部分进行赋值,如if (a = b),应写成if (a == b),但是在比较是否相等的情况下,最好使用全等运算符,也就是使用===和!==运算符对比==和!=会好点。因为==和!=运算符会进行强制类型转换。

不要使用生偏语法

不要使用生偏语法,和写一些让人疑惑的代码,虽然计算机可以正常识别和运行,但是让人难懂的代码不方便后期维护。

函数返回统一类型

虽然JavaScript是弱类型的,在函数里,前面返回是整数型数据,后面返回布尔值都可以正常的编译和运行的,但为了规范和后期维护,应保证函数返回统一的数据类型。

总是检查数据类型

要检查你的方法传入的参数,一方面是安全性,另一方面是可实用性。用户随时都有可能会误操作传入错误的数据。这不是因为他们的问题,而是因为他们的思维方式和使用习惯和你不一样。所以可以使用typeof方法来帮助你检测function接受的参数是否合法。

何时用单引号,何时用双引号

在JavaScript当中,虽然双引号和单引号都可以用来表示字符串, 但是为了避免混乱,所以我们建议在HTML中使用双引号,在JavaScript中使用单引号。不过为了兼容各个浏览器,也为了解析时不会出错,定义JSON对象时,最好使用双引号。

删除DOM节点

删除DOM节点之前,记住要删除注册在该节点上的事件,不管是用observe方式还是用attachEvent方式来注册的事件,否则会出现无法回收的内存。此外,在removeChild和innerHTML=’ ’这两个,尽量选择第二个. 因为在sIEve(内存泄露监测工具)中监测的结果是用removeChild无法有效地释放DOM节点。

多个类型声明

在JavaScript中所有变量都可以使用单个var语句来声明,这样就是组合在一起的语句,可以减少整个脚本的执行时间。

插入迭代器

如var name=values[i]; i++;这两条语句可以写成var name=values[i++]

浮点数转换成整型

很多人经常喜欢使用parseInt()来做转成整数,其实parseInt()是用于将字符串转换成整数的,而不是用于浮点数和整型之间转换的。浮点转整型我们应该使用Math.floor()或者Math.round()。

避免双重解释

要提高代码性能,就尽可能避免出现需要按照JavaScript解释的字符串,也就是:

1.尽可能少使用eval函数

使用eval相当于在运行时再次调用解释引擎对内容进行运行,需要消耗大量时间。同时,使用Eval带来的安全性问题也是不容忽视的。

2.不使用Function构造器

不要给setTimeout或者setInterval传递字符串参数

最后,建议大家永远不要忽略代码优化工作,重构是一项从项目开始到结束需要持续的工作,只有不断的优化代码才能让代码的执行效率越来越好。

转载于:https://juejin.im/post/5d0a23daf265da1bbf6921c7

最新文章

  1. JavaScript高级程序设计-(4) 引用类型
  2. 如何把一个用户加入sodu组
  3. 【基础】多线程更新窗体UI的若干方法
  4. Qt 学习之路:QML 基本元素
  5. ajax jsonp 原理 以及对数据的处理
  6. android LayoutInflater的使用
  7. 文件描述符与FILE
  8. 用 k8s 运行一次性任务 - 每天5分钟玩转 Docker 容器技术(132)
  9. mybatis:访问静态变量或方法
  10. IDEA部署项目和多余的项目删掉的演示
  11. mysql中注释的添加修改
  12. docker:Dockerfile构建LNMP平台
  13. fedora25的免密码rsync服务配置
  14. win8、server 2012 清除winsxs文件夹
  15. Hadoop家族学习路线图v
  16. Python学习之路day3-集合
  17. [微信小程序] 微信小程序富文本-wxParse的使用
  18. ExecutorService对象的shutdown()和shutdownNow()的区别
  19. configure: error: mcrypt.h not found. Please reinstall libmcrypt.
  20. 「PHP」策略模式

热门文章

  1. PTA数据结构与算法题目集(中文) 7-39魔法优惠券 (25 分)
  2. 如何连接到Oracle数据库?
  3. spark本地开发环境搭建及打包配置
  4. Powershell 输出信息过多,结尾显示省略号
  5. nginx内置高可用配置与第三方高可用模块nginx_ustream_check_mudule配置
  6. 关于《Python自动化测试实战》
  7. 如何使用python进行自动网上考试
  8. Co-prime 杭电4135
  9. python做个谷歌内核浏览器
  10. eclipse添加方法注释