国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當前位置: 首頁 - 科技 - 知識百科 - 正文

淺談javascript中的作用域_javascript技巧

來源:懂視網 責編:小采 時間:2020-11-27 21:02:48
文檔

淺談javascript中的作用域_javascript技巧

淺談javascript中的作用域_javascript技巧:JS中作用域的概念: 表示變量或函數起作用的區域,指代了它們在什么樣的上下文中執行,亦即上下文執行環境。Javascript的作用域只有兩種:全局作用域和本地作用域,本地作用域是按照函數來區分的。 首先來看幾道題目: 1. 代碼如下: if(true){ v
推薦度:
導讀淺談javascript中的作用域_javascript技巧:JS中作用域的概念: 表示變量或函數起作用的區域,指代了它們在什么樣的上下文中執行,亦即上下文執行環境。Javascript的作用域只有兩種:全局作用域和本地作用域,本地作用域是按照函數來區分的。 首先來看幾道題目: 1. 代碼如下: if(true){ v

JS中作用域的概念:

  表示變量或函數起作用的區域,指代了它們在什么樣的上下文中執行,亦即上下文執行環境。Javascript的作用域只有兩種:全局作用域和本地作用域,本地作用域是按照函數來區分的。

首先來看幾道題目:

1.
代碼如下:
if(true){
var aa= "bb";
}
console.log(aa); //bb

for(var i = 0; i < 100; i++){
//do
}
console.log(i); //100

2.
代碼如下:
var bb = '11111';
function aa() {
alert(bb);//undefine
var bb = 'test';
alert(bb);//test
   var cc = "test1";
alert(age);//語法錯誤
}
aa();

3.
代碼如下:
var test = '1111111';
function aa() {
alert(test);
}

function bb() {
var test = '22222222';
aa();
}

bb();//alert(1111111);

4.
代碼如下:
alert(typeof aa); //function
alert(typeof bb); //undefined function aa() { //函數定義式
alert('I am 111111111');
};
var bb = function() { //函數表達式
}
alert(typeof bb);//function

5.
代碼如下:
function aa(){
var bb = "test";
cc = "測試";
alert(bb);
}
aa();
alert(cc);//測試
alert(bb);//語法報錯

上面這5道題目全部概括了js中作用域的問題

可以總結出這么幾個觀點

一、無塊級作用域

從第一題中可以看出來,在{}中執行后,變量并沒有被銷毀,還是保存在內存中的,因此我們可以訪問到的。

二、JavaScript中的函數運行在它們被定義的作用域里,而不是它們被執行的作用域里.

這里提到函數的作用域鏈這個概念,在ECMA262中,是這樣的

任何執行上下文時刻的作用域, 都是由作用域鏈(scope chain)來實現.
在一個函數被定義的時候, 會將它定義時候的scope chain鏈接到這個函數對象的[[scope]]屬性.
在一個函數對象被調用的時候,會創建一個活動對象(也就是一個對象), 然后對于每一個函數的形參,都命名為該活動對象的命名屬性, 然后將這個活動對象做為此時的作用域鏈(scope chain)最前端, 并將這個函數對象的[[scope]]加入到scope chain中.
所以題目3 結果是alert(1111111);

三、JS會提前處理function定義式 和var關鍵字

  如題目4 開始alert(bb); //undefine ,alert(age)//語法報錯,這兩個有什么區別呢,原因就是后面有var bb =“test”,在初始化的時候提前處理了var 這個關鍵字,只是這個開始未賦值

將代碼修改成這樣的,可以看出來
代碼如下:
var dd = '11111';
function aa() {
alert(bb);//undefine
   var bb = 'test';
alert(bb);//test
   var cc = "test1";
alert(age);//語法錯誤
}
aa();
alert(dd);//11111
alert(cc);//語法報錯

此處alert(bb)沒有報語法錯誤,alert(age)報語法錯誤。

但是請注意:
代碼如下:

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

淺談javascript中的作用域_javascript技巧

淺談javascript中的作用域_javascript技巧:JS中作用域的概念: 表示變量或函數起作用的區域,指代了它們在什么樣的上下文中執行,亦即上下文執行環境。Javascript的作用域只有兩種:全局作用域和本地作用域,本地作用域是按照函數來區分的。 首先來看幾道題目: 1. 代碼如下: if(true){ v
推薦度:
標簽: js javascript 范圍內
  • 熱門焦點

最新推薦

猜你喜歡

熱門推薦

專題
Top
主站蜘蛛池模板: 国产日韩欧美自拍 | 久久久久久久国产a∨ | 图片一区 | 精品国产欧美一区二区 | 久久精品99久久香蕉国产色戒 | 亚洲欧美日韩综合网导航 | 婷婷综合久久中文字幕蜜桃三电影 | 欧美极品第1页专区 | 免费在线国产视频 | 久久久久久久国产精品 | 欧美视频精品一区二区三区 | 亚洲qvod图片区电影 | 91精品成人免费国产片 | 国产一区二区三区视频在线观看 | 久久99精品一区二区三区 | 国产91精品黄网在线观看 | 日韩视频一区二区在线观看 | 日韩国产一区二区 | 日韩欧美激情 | 91精品国产色综合久久不卡蜜 | 国内一区亚洲综合图区欧美 | 亚洲 欧美 综合 | 日本a级精品一区二区三区 日本不卡视频一区二区三区 | 国产日产精品_国产精品毛片 | 国产一区二区三区视频 | 国产91精品久久久久久 | 国产精品欧美韩国日本久久 | 国产一级特黄全黄毛片 | 日韩精品网址 | 国产精品毛片va一区二区三区 | 亚洲欧美色欧另类欧 | 亚洲国产成人久久综合区 | www.日韩视频 | 久久久久成人精品一区二区 | 一级一黄在线观看视频免费 | 特黄特黄aaaa级毛片免费看 | 亚洲美女一区二区三区 | 欧美日韩视频一区二区三区 | 亚洲日韩图片专区第1页 | 欧美日韩精品一区二区三区四区 | 国产成人精品一区二三区2022 |