91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

JS變量的聲明

發布時間:2020-07-24 14:56:28 來源:網絡 閱讀:310 作者:paulsen 欄目:web開發
var?x?=?1;
test();

function?test(){
????console.log(x)?//1
}

function?test(){
????console.log(x)?//undefined
????var?x?=?10;
}

function?test(){
????console.log(x)?//1
????x?=?10;
????console.log(x)?//10
}

大前提:Javascript在執行前會對整個腳本文件的聲明部分做完整分析(包括局部變量),從而確定變量的作用域

第一種test寫法? X先在外層被聲明了全局作用域?執行到test的時候 X作用域沒有變 直接打印全局x

第二種test寫法? X先在外層被聲明了全局作用域 執行到test時候 x作用域被聲明為局部作用域 而此時局部作用域的x并沒有賦值? 賦值是在console之后才發生的

第三種test寫法? X先在外層被聲明了全局作用域 執行到test的時候 X沒有被聲明為局部作用域? 所以x仍然為全局作用域 故第一個可以打印出1


可以這樣理解 在執行方法的時候 第一步執行的是變量的聲明? 然后才是后面的邏輯代碼

var?x?=?1


function?test(){
????alert('ok')
????console.log('ok')
????var?x?=?100
}


function?test(){
????var?x;
????alert('ok')
????console.log('ok')
????x=100;
}

上面第二種test就是第一種test在JS解析時候的執行過程 執行到test方法時 先把聲明變量的部分挪到前面 確定變量的作用域; 賦值的地方不變; 第二種test x=100 此時的X只是局部賦值


函數內容的var是局部賦值 不帶var的直接賦值是全局的

function?test(){
????x=?1
}
console.log(x)//undefined
test();
console.log(x)//1


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

南宫市| 大丰市| 静宁县| 禹州市| 昌图县| 黔江区| 张家港市| 八宿县| 璧山县| 绵阳市| 林州市| 芦山县| 黑水县| 文山县| 兴隆县| 沙坪坝区| 长治县| 光泽县| 双辽市| 巢湖市| 图木舒克市| 怀集县| 调兵山市| 信丰县| 丹寨县| 科尔| 搜索| 庆城县| 北流市| 冕宁县| 田东县| 汤阴县| 象州县| 临漳县| 湄潭县| 城固县| 嵩明县| 清远市| 修文县| 镇原县| 乳山市|