javascript基础点

以下是自己学习JavaScript中遇到的问题,网上的这些博文给出了很好的解答,在此一并小计一下。
PS:《javascript高级程序设计》值得一读。

  1. 立即执行函数(function(){…})() 与 (function(){…}()) 的区别? 解答
  2. 作用域的问题 ,js里只有函数作用域:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    var color="red";
    function change(color){
    /*
    在函数作用域内有一个color的局部变量。
    若不是这样,alert(color)使浏览器报color is not defined的错误
    */

    alert(color);
    color="blue";
    }
    //这里是引用外部的全局变量
    function change2(){
    color="blue";
    }
    change();// undefined
    change(color);// red
    change2();
    alert(color);

在执行change()时声明了局部变量color但未初始化所以是undefined;执行change(color)时声明并初始化了局部变量所以是red,紧接着color="blue"修改了局部变量的值.

  1. 关于闭包,说的通俗些闭包就是能够读取其他函数内部变量的函数。这里有进一步的说明