在 Javascript 中,做用域分为 全局做用域 和 函数做用域html
代码在程序的任何地方都能被访问,window 对象的内置属性都拥有全局做用域。函数
在固定的代码片断才能被访问spa
例子:3d
做用域有上下级关系,上下级关系的肯定就看函数是在哪一个做用域下建立的。如上,fn做用域下建立了bar函数,那么“fn做用域”就是“bar做用域”的上级。code
做用域最大的用处就是隔离变量,不一样做用域下同名变量不会有冲突。htm
变量取值:到建立 这个变量 的函数的做用域中取值对象
通常状况下,变量取值到 建立 这个变量 的函数的做用域中取值。blog
可是若是在当前做用域中没有查到值,就会向上级做用域去查,直到查到全局做用域,这么一个查找过程造成的链条就叫作做用域链。ip
var x = 10; function fn(){ console.log(x); } function show(f){ var x = 20; (function(){ f(); // 10 })() } show(fn);