变量的作用域 是由代码 书写的位置决定 而不是 变量被使用的位置决定;只有函数可以限定作用域。
在javaScript中使用变量,Javascript解释器首先在当前作 用域中搜索是否有该变量的定义,如果有,就是用这个变量;如果没有就到父域中寻找该变量. 以此类推,直到最顶级作用域,仍然没有找到就抛出异常”变量未定义”. 注意:如果要找的变量在链的函数参数中也会停止查找,表明已经找到
var num = 10;(function fn(){ var fn2 = function(){ console.log(num) //10 } fn2()})(); var num = 10; (function fn(){ var fn2 = function(n){ console.log(num) //10 } fn2() })();但是
var num = 10; (function fn(){ var fn2 = function(num){ console.log(num) //undefined } fn2() })();新闻热点
疑难解答