日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

064_let关键字

發(fā)布時間:2025/4/17 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 064_let关键字 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1. 在ES2015之前, JavaScript只有兩種類型的作用域: 全局作用域和局部(函數(shù))作用域。

2. ES2015引入了兩個重要的JavaScript新關(guān)鍵詞: let和const。

3. let和const都是用來聲明變量的。

4. let和const這兩個關(guān)鍵字在JavaScript中提供了塊作用域(Block Scope)變量和常量。

5. 塊作用域

5.1. 通過var關(guān)鍵詞聲明的變量沒有塊作用域。

5.2. var在塊{}內(nèi)聲明的變量可以從塊之外進行訪問。和在塊外聲明變量沒什么兩樣, 還是是全局變量。因此一般不在塊中使用var聲明變量, 在全局使用var聲明變量就可以了。

5.3. 實例

{var a = 5; // 給a初始化為5 } document.write('a = ' + a + "<br />"); // 輸出a = 5

5.4. 可以使用let關(guān)鍵字聲明擁有塊作用域的變量。

5.5. let在塊{}內(nèi)聲明的變量無法從塊外訪問。

5.6. 實例

{let b = 10;// let在塊內(nèi)聲明的變量, 只能在塊內(nèi)訪問。document.write('b = ' + b + "<br />"); // 輸出b = 10 } // 塊外不能訪問b, 訪問b, 報錯

6. 循環(huán)作用域

6.1. 循環(huán)中使用var聲明的變量是全局變量。

for(var i = 1; i <= 3; i++){document.write('i = ' + i + "<br />"); } document.write('i = ' + i + "<br />"); // 輸出i = 4 document.write('i = ' + window.i + "<br />"); // 輸出i = 4var obj = {id: 1001, name: 'zs'}; for(var item in obj){document.write('item = ' + item + "<br />"); } document.write('item = ' + item + "<br />"); // 輸出item = name document.write('item = ' + window.item + "<br />"); // 輸出item = name

6.2. 循環(huán)中使用let聲明的變量, 在循環(huán)外不能訪問。

for(let j = 1; j <= 3; j++){document.write('j = ' + j + "<br />"); } // 不能訪問jfor(let key in obj){document.write('key = ' + key + "<br />"); } // 不能訪問key

7. 函數(shù)作用域

7.1. 在函數(shù)內(nèi)聲明變量時, 使用var和let很相似。它們都有函數(shù)作用域:

function myFunction1() {var bookName = "Effective Java"; // 函數(shù)作用域document.write('bookName = ' + bookName + "<br />"); // bookName = Effective Java } myFunction1(); // document.write('bookName = ' + bookName + "<br />"); // 訪問bookName會報錯 function myFunction2() {let mobileName = "huawei"; // 函數(shù)作用域document.write('mobileName = ' + mobileName + "<br />"); // mobileName = huawei } myFunction2(); // document.write('mobileName = ' + mobileName + "<br />"); // 訪問mobileName會報錯

8. 全局作用域

8.1. 如果在塊外聲明聲明, 那么var和let也很相似。它們都擁有全局作用域:

var c = 15; // 全局作用域 let d = 20; // 全局作用域

9. html中的全局變量

9.1. 使用JavaScript的情況下, 全局作用域是JavaScript環(huán)境。

9.2. 在html中, 全局作用域是window對象。

9.3. 通過var關(guān)鍵詞定義的全局變量屬于window對象:

var c = 15; document.write('c = ' + c + "<br />"); // c = 15 document.write('c = ' + window.c + "<br />"); // c = 15

9.4. 通過let關(guān)鍵詞定義的全局變量不屬于window對象, 屬于JavaScript環(huán)境:

let d = 20; document.write('d = ' + d + "<br />"); // d = 20 document.write('d = ' + window.d + "<br />"); // d = undefined

10. 重新聲明

10.1. 允許在程序的任何位置使用var重新聲明JavaScript變量:

var I = 'I_01'; // 允許 var I = 'I_02'; // 允許 function myFn01(){var II = 'II_01'; // 允許var II = 'II_02'; // 允許 }

10.2. 在相同的作用域, 通過let重新聲明一個var變量是不允許的:

var III = 'III_01'; // 允許 let III = 'III_02'; // 不允許function myFn02(){var III = 'III_01'; // 允許let III = 'III_02'; // 不允許 }

10.3. 在相同的作用域, 通過var、let重新聲明一個let變量是不允許的:

let IV = 'IV_01'; // 允許 var IV = 'IV_02'; // 不允許 function myFn03(){let IV = 'IV_01'; // 允許var IV = 'IV_02'; // 不允許 }let V = 'V_01'; // 允許 let V = 'V_02'; // 不允許 {let V = 'V_01'; // 允許let V = 'V_02'; // 不允許 } function myFn04(){let V = 'V_01'; // 允許let V = 'V_02'; // 不允許 }

11. 提升

11.1. 通過var聲明的變量會提升到頂端。

p = 120; var p; document.write('p = ' + p + "<br />"); // p = 120

11.2. 通過let定義的變量不會被提升到頂端。

11.3. 在聲明let變量之前就使用它會導致ReferenceError。

// q = 125; 報錯 let q;

12. 例子

12.1. 代碼

<!DOCTYPE html> <html><head><meta charset="utf-8" /><title>let關(guān)鍵字</title></head><body><script type="text/javascript">{var a = 5; // 給a初始化為5}document.write('a = ' + a + "<br />"); // 輸出a = 5{let b = 10;// let在塊內(nèi)聲明的變量, 只能在塊內(nèi)訪問。document.write('b = ' + b + "<br />"); // 輸出b = 10}// 塊外不能訪問b, 訪問b, 報錯for(var i = 1; i <= 3; i++){document.write('i = ' + i + "<br />");}document.write('i = ' + i + "<br />"); // 輸出i = 4document.write('i = ' + window.i + "<br />"); // 輸出i = 4var obj = {id: 1001, name: 'zs'};for(var item in obj){document.write('item = ' + item + "<br />");}document.write('item = ' + item + "<br />"); // 輸出item = namedocument.write('item = ' + window.item + "<br />"); // 輸出item = namefor(let j = 1; j <= 3; j++){document.write('j = ' + j + "<br />");}// 不能訪問jfor(let key in obj){document.write('key = ' + key + "<br />");}// 不能訪問keyfunction myFunction1() {var bookName = "Effective Java"; // 函數(shù)作用域document.write('bookName = ' + bookName + "<br />"); // bookName = Effective Java}myFunction1();// document.write('bookName = ' + bookName + "<br />"); // 訪問bookName會報錯function myFunction2() {let mobileName = "huawei"; // 函數(shù)作用域document.write('mobileName = ' + mobileName + "<br />"); // mobileName = huawei}myFunction2();// document.write('mobileName = ' + mobileName + "<br />"); // 訪問mobileName會報錯var c = 15;document.write('c = ' + c + "<br />"); // c = 15document.write('c = ' + window.c + "<br />"); // c = 15let d = 20;document.write('d = ' + d + "<br />"); // d = 20document.write('d = ' + window.d + "<br />"); // d = undefinedp = 120;var p;document.write('p = ' + p + "<br />"); // p = 120// q = 125; 報錯let q;</script></body> </html>

12.2. 效果圖

總結(jié)

以上是生活随笔為你收集整理的064_let关键字的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。