前端开发中10个有关JavaScript优化问题
发布时间:2019-09-06
发布者:eidea
浏览次数:4169
JavaScript的高效优化一直都是我们前端开发中非常重要的工作,也是很多开发人员无法做好的一部分内容,所以今天我总结了10个优化问题,大家可以参考来做优化,大部分问题都是大家常遇到的。
1、何时用单引号,何时用双引号
在JavaScript当中,虽然双引号和单引号都可以用来表示字符串, 但是为了避免混乱,所以我们建议在HTML中使用双引号,在JavaScript中使用单引号。不过为了与各种浏览器兼容并避免解析错误,在定义JSON对象时最好使用双引号。
2、= =和= = =之间的区别
应避免在if和while条件选择语句中的条件判断部分进行赋值,如if (a = b),应写成if (a == b),但是在比较是否相等的情况下,最好使用全等运算符,也就是使用===和!==运算符对比==和!=会好点。因为==和!=运算符会进行强制类型转换。
3、经常检查数据类型
要检查你的方法传入的参数,一方面是安全性,另一方面是可实用性。用户随时都有可能会误操作传入错误的数据。这不是因为他们的问题,而是因为他们的思维方式和使用习惯和你不一样。所以可以使用typeof方法可以帮助你检测function接受的参数是否合法。
4、函数返回统一类型
虽然JavaScript是弱类型的,在函数里,前面返回是整数型数据,后面返回布尔值都可以正常的编译和运行的,但为了规范和后期维护,应保证函数返回统一的数据类型。
5、不要使用生偏语法
不要使用偏见语法,写一些令人困惑的代码。虽然计算机可以正常识别和运行,但这些难理解的代码不便于以后的维护。
6、删除DOM节点
删除DOM节点之前,记住要删除注册在该节点上的事件,不管是用observe方式还是用attachEvent方式来注册的事件,否则会出现无法回收的内存。此外,在removeChild和innerHTML=’ ’这两个,尽量选择第二个. 因为在sIEve(内存泄露监测工具)中监测的结果是用removeChild无法有效地释放DOM节点。
7、插入迭代器
如var name=values[i]; i++;这两条语句可以写成var name=values[i++]
8、浮点数转换成整型
很多人经常喜欢使用parseInt()来做转成整数,其实parseInt()是用于将字符串转换成整数的,而不是用于浮点数和整型之间转换的。浮点转整型我们应该使用Math.floor()或者Math.round()
9、多个类型声明
在JavaScript中所有变量都可以使用单个var语句来声明,这样就是组合在一起的语句,可以减少整个脚本的执行时间。
10、避免双重解释
要提高代码性能,就尽可能避免出现需要按照JavaScript解释的字符串,也就是:
①.尽可能少使用eval函数
使用eval相当于在运行时再次调用解释引擎对内容进行运行,需要消耗大量时间。同时,使用Eval带来的安全性问题也是不容忽视的。
②.不使用Function构造器
不要给setTimeout或者setInterval传递字符串参数
最后,小编建议大家千万不要忽略代码优化工作,重构是一项从项目开始到结束需要持续的工作,只有不断的优化代码才能让代码的执行效率越来越好。
1、何时用单引号,何时用双引号
在JavaScript当中,虽然双引号和单引号都可以用来表示字符串, 但是为了避免混乱,所以我们建议在HTML中使用双引号,在JavaScript中使用单引号。不过为了与各种浏览器兼容并避免解析错误,在定义JSON对象时最好使用双引号。
2、= =和= = =之间的区别
应避免在if和while条件选择语句中的条件判断部分进行赋值,如if (a = b),应写成if (a == b),但是在比较是否相等的情况下,最好使用全等运算符,也就是使用===和!==运算符对比==和!=会好点。因为==和!=运算符会进行强制类型转换。
3、经常检查数据类型
要检查你的方法传入的参数,一方面是安全性,另一方面是可实用性。用户随时都有可能会误操作传入错误的数据。这不是因为他们的问题,而是因为他们的思维方式和使用习惯和你不一样。所以可以使用typeof方法可以帮助你检测function接受的参数是否合法。
4、函数返回统一类型
虽然JavaScript是弱类型的,在函数里,前面返回是整数型数据,后面返回布尔值都可以正常的编译和运行的,但为了规范和后期维护,应保证函数返回统一的数据类型。
5、不要使用生偏语法
不要使用偏见语法,写一些令人困惑的代码。虽然计算机可以正常识别和运行,但这些难理解的代码不便于以后的维护。
6、删除DOM节点
删除DOM节点之前,记住要删除注册在该节点上的事件,不管是用observe方式还是用attachEvent方式来注册的事件,否则会出现无法回收的内存。此外,在removeChild和innerHTML=’ ’这两个,尽量选择第二个. 因为在sIEve(内存泄露监测工具)中监测的结果是用removeChild无法有效地释放DOM节点。
7、插入迭代器
如var name=values[i]; i++;这两条语句可以写成var name=values[i++]
8、浮点数转换成整型
很多人经常喜欢使用parseInt()来做转成整数,其实parseInt()是用于将字符串转换成整数的,而不是用于浮点数和整型之间转换的。浮点转整型我们应该使用Math.floor()或者Math.round()
9、多个类型声明
在JavaScript中所有变量都可以使用单个var语句来声明,这样就是组合在一起的语句,可以减少整个脚本的执行时间。
10、避免双重解释
要提高代码性能,就尽可能避免出现需要按照JavaScript解释的字符串,也就是:
①.尽可能少使用eval函数
使用eval相当于在运行时再次调用解释引擎对内容进行运行,需要消耗大量时间。同时,使用Eval带来的安全性问题也是不容忽视的。
②.不使用Function构造器
不要给setTimeout或者setInterval传递字符串参数
最后,小编建议大家千万不要忽略代码优化工作,重构是一项从项目开始到结束需要持续的工作,只有不断的优化代码才能让代码的执行效率越来越好。
相关新闻推荐
- 学Web前端开发技术,要避开这些误区! 2019-08-23
- CSS3 创建简单的网页动画 – 实现弹跳球动 2019-08-14
- 百度蜘蛛爬虫的抓取规律是什么 2019-07-18
- 智慧党建学习系统平台开发解决方案 2018-10-21
- 企业做网络营销的五大思路 2019-08-20
- fun88建设能够有效促进发展 2020-05-18