• 养成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

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

  • 相关阅读:
    高德地图SDK大致使用
    AFNetworking 使用
    蓝牙相关
    svn 常用命令
    通过AutoLayout显示三个等宽视图
    适配相关 --AutoLayout ---SizeClass
    常用网页
    UIViewController加载过程
    UIApplication相关
    实现消息转发功能(调用非自己类方法)
  • 原文地址:https://www.cnblogs.com/myphoebe/p/2226313.html
Copyright © 2020-2023  润新知