亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

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

杭锦后旗| 五常市| 米脂县| 宝丰县| 北辰区| 神农架林区| 西和县| 西城区| 宁波市| 商南县| 东方市| 武隆县| 长垣县| 临海市| 兴隆县| 忻城县| 梅河口市| 黔南| 康保县| 信宜市| 青海省| 绥滨县| 宣城市| 巫溪县| 甘谷县| 乌海市| 虎林市| 望江县| 永安市| 鹤山市| 德庆县| 龙泉市| 古田县| 邯郸市| 大同市| 靖边县| 云浮市| 安图县| 大埔区| 新化县| 依兰县|