2016年1月

javascript之call()/apply()

先理解JavaScrtipt动态变换运行时上下文特性,这种特性主要就体现在apply, call两个方法的运用上.

foo.call(this, arg1,arg2,arg3) == foo.apply(this, arguments)==this.foo(arg1, arg2, arg3)

相同点:两个方法产生的作用是完全一样的。call, apply作用就是借用别人的方法来调用,就像调用自己的一样。

不同点:方法传递的参数不同。从第二个参数起, call方法参数将依次传递给借用的方法作参数, 而apply直接将这些参数放到一个数组中再传递, 最后借用方法的参数列表是一样的。

原文地址:http://www.cnblogs.com/fighting_cp/archive/2010/09/20/1831844.html
知乎地址:http://www.zhihu.com/question/20289071

javascript之函数(一)

基础概念:

1、函数声明:
    
    function fnName(arg){...}

2、函数表达式:

    var fnName = function(){...}

3、匿名函数:

    function(){...}
    匿名函数属于函数表达式,其主要是赋予一个变量则创建函数,赋予一个事件则成为事件处理程序或创建闭包。

函数声明和函数表达式区别:
1、javascript引擎在解析javascript代码时会“函数声明提升”当前执行环境(作用域)上的函数声明,而函数表达式必须等到javascript引擎执行到它所在行时,才会从上而下一行一行的解析函数表达式。
2、函数表达式后面可以加括号立即调用该函数,函数声明不可以。

原文地址:http://www.jb51.net/article/50967.htm
学习地址:http://www.cnblogs.com/TomXu/archive/2011/12/31/2289423.html
segmentfault:http://segmentfault.com/q/1010000000135703

javascript之数组

先进后出栈:

push() 向数组的末尾添加一个或多个元素,并返回新的长度。
var arr = new Array('array');
arr.push('push');
console.log(arr); // ['array','push']

pop() 删除并返回数组的最后一个元素。
console.log(arr.pop()); // 'push'