//javascript 作用域(全局、函數(shù)、eval)
var a =10; // 全局
(function(){ //函數(shù)
var b = 20;
})();
a;
/*
10
*/
b;
/*
Exception: ReferenceError: b is not defined
@Scratchpad/1:9:1
*/
for(var item in{a:1,b:2}){
console.log(item);
}
console.log(item);
eval("var a=1;");
//js 沒有塊級作用域 也就是說 for 還有if之類的聲明都是全局性的
//作用域鏈
function outer2(){
var local2 =1;
function outer1(){
var local1 = 1;
//這里可以范根到 局部變量local1,local2,和全局變量global3
}
outer1();
}
var global3= 1;
outer2();
//內(nèi)部可以訪問外部的變量
//利用函數(shù)作用域封裝
(function(){//匿名函數(shù)
//do sth
var a,b;//聲明局部變量
})();
!function(){ //聲明函數(shù)表達(dá)式
//do sth
var a,b;
}();
//ES3執(zhí)行上下文Exec、變量對象(抽象概念)
/*vo按照如下順序填充
1、函數(shù)參數(shù)(若為傳入,初始化改參數(shù)值為undefined)
2、函數(shù)聲明(若發(fā)生命名沖突,會覆蓋)
3、變量聲明(初始化變量值為undefined,若發(fā)生命名沖突,會忽略)
*/
function foo(x,y,x){
function x(){
alert(x);
}
}
foo(100);
//console.log 使用第二條判斷
function foo(x,y,z){
function func(){};
var func =1;
console.log(func);
};
foo(100);
console.log(foo(100));//結(jié)果都是1 使用第三條判斷
//函數(shù)表達(dá)式不會影響VO
var e=function _e(){};
//這樣就可以解釋 為什么變量跟 函數(shù)可以前置;而 函數(shù)表達(dá)式不可以 會報(bào)錯(cuò)
//函數(shù)聲明 名字不可以省略 執(zhí)行提前
alert(x);//function
var x=10;
alert(x);//x=10;
x=20;
function x(){};
alert(x);//20
if(true){
var a=1;
}else{
var b=true;
}
alert(a);//1
alert(b);//undefined
Js作用域、上下文
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
相關(guān)閱讀更多精彩內(nèi)容
- 上文簡單介紹了作用域,本文把作用域和上下文環(huán)境結(jié)合起來說一下,會理解的更深一些。 如上圖,我們在上文中已經(jīng)介紹了,...
- 今天為了搞清楚上下文(context)這個(gè)詞的概念,搜索了一番,根據(jù)網(wǎng)上的各種說法,個(gè)人理解context可以指中...
- 參考:http://www.itdecent.cn/p/181da2b57eb2http://www.jiansh...
- setTimeout會把回調(diào)放到代碼執(zhí)行完畢后,再做處理,so 所以就不難理解為什么第一張圖會打印5個(gè)5了,因?yàn)椴?..
- 原文地址:深入理解閉包(五)——作用域、作用域鏈和執(zhí)行上下文 作用域,作用域鏈,執(zhí)行上下文三者之間有著密切的關(guān)系,...