5.预解析、闭包

2017-03-24  本文已影响0人  何必处处示弱

预解析

变量声明

函数的定义方式

函数声明

在js中,函数声明式写法比较单一,好区分。

函数表达式

在js中,函数表达式的编写形式,多种多样。
比如把函数当作数据赋值给变量,或者把函数作为返回值return,或者当做参数传递,或者运算符运算,或者自调函数。

预解析细节规则

console.log(fn)  // undefined
if(true) {
    function fn(){}
}
console.log(fn)  // 函数体
console.log(fn);  // 报错
var a = function fn(){
    console.log(fn);  // 函数体,因为表达式定义的函数,会在自己内部被声明一次。
}
console.log(fn);  // 报错

函数执行时形参的赋值

(function(a) {
    console.log(a);  // 100
    var a = 200;
    console.log(a);  // 200
}(100));

闭包

自由变量

引用了自由变量的闭包特点

闭包的应用

上一篇 下一篇

猜你喜欢

热点阅读