Javascript里面的一些有趣现象
在结合angularJS进行编程的时候,我们会发现很多有意思的现象,这里想讨论一下这些现象背后的原理:
1. scope -> online/view
搜索到一篇文章关于作用域链http://www.cnblogs.com/TomXu/archive/2012/01/18/2312463.html。让我的感觉就是利用这个作用域链来当作堆栈使用。
2. 闭包, 来看一个简单的例子:
var a = 1;
function one() {
console.log(a);
var a = 2; //将变量a 在该当前栈替换为该位置的a, 所有上面使用a时为未定义,后面输出a, 当该堆栈调用结束后,撤销此空间。(此处和C++/C#有区别,强类型不能重复定义相同变量,但Javascript可以,而且使用变量栈的最后一个可用值。)
console.log(a);
} console.log(a);
对比:
var a = 1;
function one() {
console.log(a);
a = 2;
console.log(a);
}
console.log(a);
3. 异步函数