国产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
當前位置: 首頁 - 科技 - 知識百科 - 正文

詳解js中let與var聲明變量的區別

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

詳解js中let與var聲明變量的區別

詳解js中let與var聲明變量的區別:ES6 新增了let命令,用來聲明局部變量,所聲明的變量,只在let命令所在的代碼塊內有效,而且有暫時性死區的約束。 1.ES6可以用let定義塊級作用域變量 代碼如下: function f1(){ { var a = 10; let b = 20; } console.log(a); /
推薦度:
導讀詳解js中let與var聲明變量的區別:ES6 新增了let命令,用來聲明局部變量,所聲明的變量,只在let命令所在的代碼塊內有效,而且有暫時性死區的約束。 1.ES6可以用let定義塊級作用域變量 代碼如下: function f1(){ { var a = 10; let b = 20; } console.log(a); /

ES6 新增了let命令,用來聲明局部變量,所聲明的變量,只在let命令所在的代碼塊內有效,而且有暫時性死區的約束。

1.ES6可以用let定義塊級作用域變量

代碼如下:

function f1(){
 {
 var a = 10;
 let b = 20;
 }
 console.log(a); // 10
 console.log(b); // Uncaught ReferenceError: b is not defined
 }
 f1();

說明:在ES6之前只有全局作用域和函數作用域,在ES6中新增了塊級作用域,用{}花括號表示。var 聲明的變量a在花括號外面仍然是會起作用的,但是let聲明的變量b只有在花括號里面才會起作用的,在塊級作用域內。

2.let配合for循環的獨特應用

代碼如下:

 function f2(){
 var i = 5;
 for(var i=0;i<=10;i++){

 }
 console.log(i); // 11

 var j = 5;
 for(let j=0;j<=10;j++){

 }
 console.log(j); // 5

 }
 f2();

說明:let非常適合用于for循環內部的塊級作用域,在for循環當中,每一次的執行都是一個全新的獨立的塊級作用域。使用let聲明的變量在for循環當中不會受到循環體外面的影響,不會受到變量污染,不會發生改變。對于var聲明的變量i會受到for循環的影響,受到變量污染,而let聲明的變量j不會受到for循環的影響。

3.let沒有變量提升與暫時性死區

代碼如下:

 function f3(){

 // 變量提升
 function f31(){
 console.log(a); // undefined
 var a = 10;

 console.log(b); // Uncaught ReferenceError: b is not defined
 let b = 10;
 }
 f31();

說明:在ES6中,如果區塊中存在let和const命令,這個區塊對這些命令聲明的變量,從一開始就形成了封閉作用域。凡是在聲明之前就使用這些變量,就會報錯。暫時性死區(TDZ):在代碼塊內,使用let命令聲明變量之前,該變量都是不可用的。在f31函數中,用var聲明的變量a發生了變量提升,打印出的值為undefined 未定義,而用let聲明的變量b報錯Uncaught ReferenceError,不會發生變量提升。在f32函數中,用使用let命令聲明的變量a之前,都屬于變量a的暫時性死區,形成封閉作用域,該變量都是不可用的,會報錯,Uncaught ReferenceError: a is not defined。在let聲明變量后,它是一個未定義的變量。當再給變量a進行賦值操作以后,它的值可以正常打印出來。

4.let變量不能重復聲明

代碼如下:

function f4(){
 let a = 10;
 let a = 20;
 console.log(a); // Uncaught SyntaxError: Identifier 'a' has already been declared

 let b = 10;
 var b = 20;
 console.log(b); // Uncaught SyntaxError: Identifier 'b' has already been declared

 }
 f4();

說明:let不允許在相同作用域內,重復聲明同一個變量,否則報錯。在函數f4中,無論是用兩個let聲明同一個變量a,還是一個let聲明變量b和一個var聲明變量b,都是會報錯的,Uncaught SyntaxError: Identifier ‘a' has already been declared 和 Uncaught SyntaxError: Identifier ‘b' has already been declared , 所以不能夠重復聲明同一個變量。

以上所述是小編給大家介紹的let與var聲明變量區別詳解整合,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!

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

文檔

詳解js中let與var聲明變量的區別

詳解js中let與var聲明變量的區別:ES6 新增了let命令,用來聲明局部變量,所聲明的變量,只在let命令所在的代碼塊內有效,而且有暫時性死區的約束。 1.ES6可以用let定義塊級作用域變量 代碼如下: function f1(){ { var a = 10; let b = 20; } console.log(a); /
推薦度:
標簽: 區別 va 變量
  • 熱門焦點

最新推薦

猜你喜歡

熱門推薦

專題
Top
主站蜘蛛池模板: 日本韩国一区二区 | 亚洲欧美在线免费观看 | 欧美 日韩 国产在线 | 国产手机在线精品 | 九九啪啪 | 自拍自偷 | 亚洲人一区 | 免费看特级淫片日本 | 国产精品资源网站在线观看 | 亚洲欧美天堂 | 日韩视频在线免费观看 | 国产第十页 | 欧美啪啪网| 欧美 日韩 国产 在线 | 国产一区二区三区在线视频 | 亚洲视频欧美视频 | 欧美另类v| 欧美日韩国产综合在线 | 国内精品线在线观看 | 免费国产黄网站在线观看视频 | 久久久国产一区二区三区 | 日韩欧美一区二区三区中文精品 | 亚州一区二区 | 日韩欧美在线免费观看 | 国内精品久久久久久久aa护士 | 日本亲与子乱ay中文 | 亚洲第一页在线播放 | 伊人久久成人成综合网222 | 国产精选免费视频 | 国产精品ⅴ视频免费观看 | 在线播放国产精品 | 国产精品视频久久久 | 黄色一级a毛片 | 亚洲精品综合久久中文字幕 | 日韩欧美一区二区三区免费看 | 在线观看视频日韩 | 欧美成人精品第一区二区三区 | 欧美日韩在线高清 | 亚洲欧美一区二区三区九九九 | 精品一区二区三区视频日产 | 亚洲第一网站在线观看 |