Javascript学习中比较核心的知识(持续更新)

工欲善其事必先利其器,先介绍一个非常好用的Javascript IDE: WebStorm; 非常不错。

  1. 对象直接量 即使用{}定义的对象,如 {name:"kid", age: 18, school:"Harvard"}; 内部是 属性:值 对。
  2. 变量的作用域 Javascript的作用域分两种,global和local; 在函数内部任何位置通过var声明的变量,它的作用域都是整个函数。这就有个有趣的现象:
    var myInterest = "basketball";
    function jarek() {
        printInterest(myInterest);
        var myInterest="football";
        printInterest(myInterest);
    }
    jarek();
    第一个printInterst显示的是什么呢? 答案是undefined。为什么不是basketball呢?因为在函数内部声明了一个同名的变量,整个变量的作用域是整个函数,但是在第一次调用打印的时候,它还没有定义,所以得到的就是undefined。
  3. Javascript中的变量分为两类: 基本类型引用类型。数值、布尔值、null和undefined都属于基本类型;对象、数组和函数属于引用类型。
    基本类型在内存中具有固定的大小;而引用类型在内存中的大小都是不确定的。二者的变量的使用有很大的区别:
    var a = 10;
    var b = a;
    a = 15;
    print(b); //打印10,因为a的值是复制给b的,修改a并不会改变b的值。
    var c = [1, 2, 3];
    var b = c;
    c[0] = 99;
    print(b[0]); //打印99! 因为在执行b=c的时候,使b也引用了c引用的对象;所以使用b,c进行对象修改时,修改的是同一个对象。
  4. Function arguments; javascript中,每一个函数都有一个arguments属性,通过这个属性,可以得到函数的实际参数。arguments[0]得到第一个参数,依次类推;arguments.length得到实际参数的个数;
    Function本身也有length属性,这个属性表示的是函数声明时的参数个数,通过这两个length,可以进行一些判断性操作,根据实际参数与期望个数是否相同,采取不同的动作。
    arguments另一个重要的属性是callee, 即它所属的函数本身。对于匿名函数,这个特性尤其重要。
    function(x) { if(x== 0) return 1; else return x*arguments.callee(x-1);}
  5. 定义你自己的函数属性; 类似于c++中类的静态变量,可以为javascript函数,自定义一个属性。
    uniqueInteger.counter = 0;
    function uniqueInteger() {
      return uniqueInter.counter++;
    }
posted @ 2013-10-14 16:57  JarekTan  阅读(263)  评论(0编辑  收藏  举报