[JavaScript]02-JavaScript作用域

作用域

doSomething=()=>{    //函式作用域,变数只存在这里面    var mood='happy';    console.log(mood);}doSomething();//会输出happyconsole.log(mood);//报错mood is not defined

语法作用域(Lexical scope)

静态作用域-在直译器进行语法解析时便已决定作用域,且不会改变,javaScript属之
动态作用域-作用域在函式调用时才决定
scope

阶层式作用域

当内层作用域找不到指定的变数时会向外找寻,皆找不到时会报错ReferenceError
casecade
var value=1;fn1=()=>{    conole.log(value)}fn2=()=>{    var value=2;    fn1();}fn2();//输出结果为 1

若为动态作用域,当变数值在现作用域找不到值时,会往方法呼叫源寻找,而不是向外找寻,如上例若为动态作用域,fn1作用域内找不到value变数的值,会向呼叫fn1的fn2作用域查找,输出值为2

上一篇:1-JavaScript运作原理


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章