• 《Effective JavaScript》编写高质量的Javascript代码的68个有效方法-读书笔记


    一、让自己习惯JavaScript

    一、当心隐式转换

      数字和字符串相加返回字符串

      1 + "2" = "12";    1 + 2 + "3" = "33"

      NaN:”Not a Number”不是一个数字,

      isNaN():来判断是不是一个不是数字,如果是数字返回false,否则返回true

      判断函数参数是否存在:

      funtion point(x, y){

        if ( typeof x === "undefined") { x = 320 }

        if ( typeof y === "undefined") { y = 320 }

      }

    二、相等与绝对相等

      ==、===

      ==的强制转换:

        1、44 == "44" 返回true,

        2、undefined == null 返回true;

    三、分号的自动插入

      javascript分号插入的规则

      1、分号在 } 标记之前一个或多个换行之后和程序输入的结尾被插入

    1 <script>
    2     function square(x) {
    3         var n = +x
    4         return n * n
    5     }
    6     
    7     function area(r) { r = +r; return Math.PI * r * r}
    8 </script>

    二、变量作用域

    一、尽量少用全局对象

      避免声明全局变量,使用局部变量

      避免对全局对象添加属性,使用全局对象来做平台特性检测.

    二、使用声明的局部变量

      局部变量如果不使用var 声明,那么该变量隐式的转换成全局变量

    三、熟悉掌握闭包

      闭包:内部函数调用外部函数的变量,当函数结束时变量在内存中不会释放,ie下会导致内存泄露浏览器崩溃

     1 <script>
     2     function maskSandWich(){
     3         var maric = 1;
     4 
     5         function make(filling){
     6             return maric++  + " and " + filling;
     7         }
     8 
     9         return make;
    10     }
    11 
    12     var f = maskSandWich();
    13     console.log(f("ss"));    // 1and ss
    14     console.log(f("ss"));    // 2and ss
    15     console.log(f("ss"));    // 3and ss
    16     console.log(f("ss"));    // 4and ss
    17 </script>    

      

    六、库和API设计

    54、将undefined看做“没有值”

      当js没有具体的值的时候就返回undefined,未赋值的变量也返回undefined

      如:

      var x;   console.log(x);      // undefined

      var obj = {};  conole.log(obj.x);       // 未找到对象属性值返回undefined

      function f() {  return ; };      // 返回undefined

    55、接收关键字参数的选项对象

      一个函数的参数过多,又要记住参数的位置,又不利于扩展。

      var alert = new Alert(a, b, c, d ,e ,f, g);

      可以改写成: 

      var alert = new Alert({a:0, b:1, c:2, d:3, e:4});

  • 相关阅读:
    day20:正则表达式
    day19:os模块&shutil模块&tarfile模块
    zynq之TF卡写入常见问题
    verilog之random
    quartus之ram的IP测试
    verilog之readmemb
    verilog之monitor
    verilog之display
    源自opencore的fifo的IP核解析
    veriog之四位全加器
  • 原文地址:https://www.cnblogs.com/couxiaozi1983/p/3886815.html
Copyright © 2020-2023  润新知