听说你在从事前端开发?那这10个JavaScript的优化问题你不得不知道!
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
听说你在从事前端开发?那这10个JavaScript的优化问题你不得不知道!的更多相关文章
- web前端开发常用的10个高端CSS UI开源框架
web前端开发常用的10个高端CSS UI开源框架 随着人们对体验的极致追求,web页面设计也面临着新的挑战,不仅需要更人性化的设计理念,还需要设计出更酷炫的页面.作为web前端开发人员,运用开源 ...
- 前端开发自动化工作流工具,JavaScript自动化构建工具grunt、gulp、webpack介绍
前端开发自动化工作流工具,JavaScript自动化构建工具grunt.gulp.webpack介绍 前端自动化,这样的一个名词听起来非常的有吸引力,向往力.当今时代,前端工程师需要维护的代码变得及为 ...
- Brackets - 强大免费的开源跨平台Web前端开发工具IDE (HTML/CSS/Javascript代码编辑器)
Brackets 是一个免费.开源且跨平台的 HTML/CSS/JavaScript 前端 WEB 集成开发环境 (IDE工具).该项目由 Adobe 创建和维护,根据MIT许可证发布,支持 Wind ...
- [转载]Brackets - 强大免费的开源跨平台Web前端开发工具IDE (HTML/CSS/Javascript代码编辑器)
http://brackets.io/ Brackets 是一个免费.开源且跨平台的 HTML/CSS/JavaScript 前端 WEB 集成开发环境 (IDE工具).该项目由 Adobe 创建和维 ...
- 前端开发,页面加载速度性能优化,如何提高web页面加载速度
一个网页访问速度的快慢, 不仅看它服务器的配置,这里除去你空间主机配置很烂的情况以外,我们从网站开发方面来探讨,前端技术需要从哪些方面提高访问的速度,需要用到哪些技术手段. 文件的加载 图标的加载: ...
- 【读书笔记】读《编写高质量代码—Web前端开发修炼之道》 - JavaScript原型继承与面向对象
JavaScript是基于原型的语言,通过new实例化出来的对象,其属性和行为来自于两部分,一部分来自于构造函数,另一部分是来自于原型.构造函数中定义的属性和行为的优先级比原型中定义的属性和优先级高, ...
- 前端开发【第三篇: JavaScript基础】
JavaScript是一门编程语言,浏览器内置了JavaScript语言的解释器,所以在浏览器上按照JavaScript语言的规则编写相应代码之,浏览器可以解释并做出相应的处理. 一.如何编写 1.J ...
- 【WEB前端开发最佳实践系列】JavaScript篇
一.养成良好的编码习惯,提高可维护性 1.避免定义全局变量和函数,解决全局变量而导致的代码“污染”最简单的额方法就是把变量和方法封装在一个变量对象上,使其变成对象的属性: var myCurrentA ...
- 前端开发:这10个Chrome扩展你不得不知
转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. 原文出处:https://blog.bitsrc.io/10-top-chrome-extensions-f ...
随机推荐
- Mysql数据库下载以及安装(至安装成功cmd可访问)
主要整理了一下Mysql安装的过程 安装的具体步骤见: https://blog.csdn.net/weixin_43465312/article/details/89897580?ops_reque ...
- 【php】LAMP中开启错误提示
vi /usr/local/php/etc/php.ini 查找display_errors 开启On即可
- javascript 入门(1)
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta lang ...
- GO中的channel使用小结
go关键字可以用来开启一个goroutine(协程))进行任务处理,而多个任务之间如果需要通信,就需要用到channel了. func testSimple(){ intChan := make(ch ...
- 当文件目录变得杂乱不堪怎么办,python帮你轻松搞定
这几天和几个小伙伴,在一起合做一个ppt. 做ppt之前有原版的ppt,和一个word大纲,在制作过程中,又不断添加图片.视频等素材,最终,整个目录变得杂乱不堪(见下图-处理之前) 那我想,可不可以做 ...
- D. AB-string
https://codeforces.com/contest/1238/problem/D 题目大意:统计good string的个数,good string的定义,给定的字符串中含有回文段落, 题解 ...
- 如何可视化深度学习网络中Attention层
前言 在训练深度学习模型时,常想一窥网络结构中的attention层权重分布,观察序列输入的哪些词或者词组合是网络比较care的.在小论文中主要研究了关于词性POS对输入序列的注意力机制.同时对比实验 ...
- linux通过进程名查看其占用端口
1.先查看进程pid ps -ef | grep 进程名 2.通过pid查看占用端口 netstat -nap | grep 进程pid 参考: https://blog.csdn.net/sinat ...
- Laravel - 基础
1.使用 composer 创建项目 composer create-project --prefer-dist laravel/laravel blog 报错1 [ErrorException]pr ...
- vue2.x学习笔记(十二)
接着前面的内容:https://www.cnblogs.com/yanggb/p/12592256.html. 组件基础 组件化是vue的一个重要特性,也是vue学习中非常重要的一个知识点. 基础示例 ...