1. 不使用script自闭合标签
script中使用自闭合标签,虽然他在XHTML中合法,但是不符合HTML规范,而且得不到某些浏览器的正确解析。我曾经就在引入EXT时使用此方式,导致无法正确执行脚本。
<script src="example.js"/> --> <script src="example.js"></script>
2. 将脚本放到</body>前面
如果将脚本文件放到<head>中去,则在显示页面前先得下载执行脚本,增加了用户等待的时间。样式表放在<head>中防止内容显示不正常。一般方式如下:
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Document</title> <link rel="stylesheet" type="text/css" href="theme.css" /></head><body> <!-- html代码 --> <script src="example.js"/></body></html>
3. 在函数内使用严格模式
如果在函数外部使用严格模式,则有可能会使第三方类库,和同事的代码不能正常工作,在函数内部则只能影响自己的代码,不至于影响到别人的代码。
function myfunction(){ "use strict"; //函数代码}
4. 不要省略语句结尾的分号
代码结尾处没有分号容易引起压缩错误,另外在某些情况下可以增进代码的性能,应为解释器不比在花时间推测在什么地方插入分号。还有一种更常见的问题就是,自动插入分号有时会出错,所以并不建议省略分号。
5. 使用var定义变量
定义变量时使用var关键字,并且全部提前至函数的最开始。
这样做的好处就会避免无意识的创建出全局变量,而且让你的代码更容易理解。
function myfunction(){ var result = 10 + value; var value = 10; return result;}
这个函数语法上是没有问题的,但是不是很直观,不符合人的逻辑,修改如下会更好:
funciton myfunction(){ var result; var value; result = 10 + value; value = 10; return result; }
给大家解释一下,上面两个代码是等价的,result的值都是NAN.JavaScript会把函数内所有的变量声明提升到函数的最开始,代码一在代码执行时会变成代码二的样子,当运行到result = 10 + value;时,value的值为undefined,和10相加为NAN,然后value被赋值为10。
关于全局变量带来的问题,大家想必也比较清楚,不然也不会出现命名空间的概念。
6. 函数先声明再使用
和变量声明一样,函数声明也会被JavaScript引擎提前,因此在代码中,函数的调用可以出现在函数的声明之前。 还有一点值得注意,函数声明不应该出现在语句块之内,比如:
if (condition) { function myfunction(){ alert("true"); }}else{ function myfunction(){ alert("false"); }}myfunction();
新闻热点
疑难解答
图片精选