养成JavaScript代码编写的好习惯

良好的习惯总是让人受益匪浅,在编写代码的时候,良好的习惯会使得开发更加地高效,减少出错的几率,甚至提高代码的运行效率,下面是一些在 JavaScript 代码编写中应该注意的几个问题,它们都非常容易遇到,却又可能非常容易地被忽略。

1. 减少不必要的全部变量

关于全局变量,这是 JavaScript 非常糟糕的一个特性,它非常地容易被创建,特别是被不小心地创建。在程序变得复杂,或者同时运行多个程序的时候,它可能带来难以调试的错误。在定义变量前加上 var,是首先应该注意并警惕的。

function fn(){
    var a = 1;   //局部变量
    b = 1;   //全局变量
}
2. 正确书写 script 标签

如果你的 script 标签中还带有 language 属性,说明你真的奥特了,赶紧去掉吧,这个属性早已经被 W3C 开除了,在 XHTML 1.0严格型中(Strict),甚至已经不再支持这个属性。需要提醒一点的是,在 Html5 中,script 标签也不再需要 type 属性,对于 Html5 来说,JavaScript 是唯一被支持的脚本语言。

<!-- XHTML 1.0 -->
<script type="javascript"></script>

<!-- HTML 5 -->
<script></script>
3. 去掉JSON最后一组键值对后面的逗号

如果你的代码像下面这样,在 IE 中会报错,并且这个错误很难被发现,IE 的报错也不会提供任何有价值的信息,唯一能做的就是在编写的时候格外小心,如果你的 JSON 是后端返回的,那么记得在下周一上班时把这个信息传达给后端程序员。

var post = {
    title : "养成JavaScript代码编写的好习惯",
    postDate : "2010-07-16",
    author : "坚强的小展",    //注意,这个逗号会让程序在 IE 的所有版本下报错。
}
4. 避免依赖 typeof 验证数据类型

typeof 是用来验证数据类型的方法,不幸的是,当需要验证的数据类型为数组、函数等时,这个方法并不能返回我们想象中的结果。事实上这并不是 typeof 的错,在 JavaScript 中,数组和函数的本质实际上也是对象,但这的确给我们带来了麻烦。

/** 依赖 typeof 的验证结果 **/
var a = [];
typeof a;   // "object"
var b = function(){};
typeof b;   // "object";
typeof null;    // "object"
/** 正确的验证方法 **/
var a = [];
a.constructor === Array;   // true
var b = function(){};
b.constructor === Function;   // true
/** 验证某个变量是否为null **/
typeof c === "undefined";   //true
5. 使用全等运算符代替相当相当运算符

作为弱类型语言的 JavaScript 似乎让我们习惯了不注重变量的数据类型,这样的偷懒看上去让我们变得轻松一些了,但这在运算的时候可能会带来更大的麻烦。推荐的做法是在开发中明确地了解 变量当前的数据类型,并且在做相等判断的时候,使用 === 运算符来代替 == 运算符,这意味着在进行比较前,必须确保参与比较的两个变量属于同一数据类型。这样做的好处可以避免 JavaScript 在处理不同数据类型的比较时自动转换数据类型可能带来的麻烦,同时也可以提高程序的运行效率。

0 == "";   // true
0 === "";   // false
1 == "1";   // true
1 === "1";   // false
6. 避免使用 with 和 eval

这一点被人提得比较多,这里就不再多说了,避免使用它们,以增加程序的可读性、安全性,减小出错的概率,提高运行效率。

原文地址:https://www.cnblogs.com/myphoebe/p/2226313.html