• js学习笔记-编写高效、规范的js代码-Tom


    编写高效、规范的js代码:

    1、变量命名空间问题,尽量使用局部变量,防止命名冲突(污染作用域中的全局变量);全局空间命名的变量可以在对应的文档域任意位置中使用window调用。

    2、尽量使用单var定义变量(作用域开始先申明并赋值变量,便于后边使用),使用var定义的变量只作用于对应的作用域中,如定义的全局变量作用于全局作用域,函数中定义的变量作用于该局部作用域中。未用var定义的变量相当于一个全局变量,在函数中出现的该类变量作用域全局域。(但是var定义的全局变量不能用delete删除,而未定义的全局变量可以用delete删除,说明未定义的全局变量就是全局对象的一个属性。)

    3、for循环用于遍历数组及类似数组的对象,采用缓存数组(或集合)的长度是比较好的形式,提高效率如下:

    1 // 次佳的循环
    2 for (var i = 0; i < myarray.length; i++) {
    3    // 使用myarray[i]做点什么
    4 }

    1 for (var i = 0, max = myarray.length; i < max; i++) {
    2    // 使用myarray[i]做点什么
    3 }

    详细了解js作用域请访问  http://www.w3cfuns.com/blog-3-5396544.html

    4、for-in循环应该用在非数组对象的遍历上,使用for-in进行循环也被称为“枚举”。

    5、JavaScript的变量在比较的时候会隐式类型转换。这就是为什么一些诸如:false == 0 或 “” == 0 返回的结果是true。为避免引起混乱的隐含类型转换,在你比较值和表达式类型的时候始终使用===和!==操作符。

    6、避免(Avoiding) eval()

    可以用Function()代替eval(),因为eval()会干扰作用域,它可以访问和修改它外部作用域中的变量,而Function只管全局作用域,防止本地变量的污染。

     1 (function () {
     2    var local = 1;
     3    eval("local = 3; console.log(local)"); // logs "3"
     4    console.log(local); // logs "3"
     5 }());
     6 
     7 (function () {
     8    var local = 1;
     9    Function("console.log(typeof local);")(); // logs undefined
    10 }());

    7、命名规范,遵循标准命名规范。

    8、注释:增加代码可读性维护性。

  • 相关阅读:
    Atom 和 markdown 基本使用
    c++11 正则表达式基本使用
    Emacs 之窗口管理
    Emacs 之列编辑模式
    Emacs 之查看帮助
    使用 json_in_java
    Linux服务 httpd
    Linux 编译安装BIND
    Kerberos
    Linux服务 DNS&BIND
  • 原文地址:https://www.cnblogs.com/weilantiankong/p/4525862.html
Copyright © 2020-2023  润新知