亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > JS > 正文

JavaScript變量聲明var,let.const及區別淺析

2024-05-06 16:43:53
字體:
來源:轉載
供稿:網友

var聲明變量的作用域限制在其聲明位置的上下文中

var x = 0; // x是全局變量,并且賦值為0。console.log(typeof z); // undefined,因為z還不存在。function a() { // 當a被調用時, var y = 2;  // y被聲明成函數a作用域的變量,然后賦值成2。 console.log(x, y);  // 0 2  function b() {    // 當b被調用時,  x = 3; // 全局變量x被賦值為3,不生成全局變量。  y = 4; // 已存在的外部函數的y變量被賦值為4,不生成新的全局變量。  z = 5; // 創建新的全局變量z,并且給z賦值為5。  }     // (在嚴格模式下(strict mode)拋出ReferenceError) b();   // 調用b時創建了全局變量z。 console.log(x, y, z); // 3 4 5}a();          // 調用a時同時調用了b。console.log(x, z);   // 3 5console.log(typeof y); // undefined,因為y是a函數的本地(local)變量。

let 聲明的變量只在其聲明的塊或子塊中可用,var的作用域是整個封閉函數

function varTest() { var x = 1; if (true) {  var x = 2; // 同樣的變量!  console.log(x); // 2 } console.log(x); // 2}function letTest() { let x = 1; if (true) {  let x = 2; // 不同的變量  console.log(x); // 2 } console.log(x); // 1}

在 ECMAScript 2015 中,let綁定不受變量提升的約束,這意味著let聲明不會被提升到當前執行上下文的頂部。
在塊中的變量初始化之前,引用它將會導致 ReferenceError(而使用 var 聲明變量則恰恰相反,該變量的值是 undefined )
當在塊中使用時,let將變量的作用域限制為該塊。注意var的作用域在它被聲明的函數內的區

var a = 1;var b = 2;if (a === 1) { var a = 11; // the scope is global let b = 22; // the scope is inside the if-block console.log(a); // 11 console.log(b); // 22} console.log(a); // 11console.log(b); // 2

const 常量必須在聲明的同時指定它的值.

const聲明創建一個值的只讀引用。但這并不意味著它所持有的值是不可變的(如引用內容是對象),只是變量標識符不能重新分配一個常量不能和它所在作用域內的其他變量或函數擁有相同的名稱

// 注意: 常量在聲明的時候可以使用大小寫,但通常情況下全部用大寫字母。 // 定義常量MY_FAV并賦值7const MY_FAV = 7;// 報錯MY_FAV = 20;// 輸出 7console.log("my favorite number is: " + MY_FAV);// 嘗試重新聲明會報錯 const MY_FAV = 20;// MY_FAV 保留給上面的常量,這個操作會失敗var MY_FAV = 20; // 也會報錯let MY_FAV = 20;// 注意塊范圍的性質很重要if (MY_FAV === 7) {   // 沒問題,并且創建了一個塊作用域變量 MY_FAV  // (works equally well with let to declare a block scoped non const variable)  let MY_FAV = 20;  // MY_FAV 現在為 20  console.log('my favorite number is ' + MY_FAV);  // 這被提升到全局上下文并引發錯誤  var MY_FAV = 20;}// MY_FAV 依舊為7console.log("my favorite number is " + MY_FAV);// 常量要求一個初始值const FOO; // SyntaxError: missing = in const declaration// 常量可以定義成對象const MY_OBJECT = {"key": "value"};// 重寫對象和上面一樣會失敗MY_OBJECT = {"OTHER_KEY": "value"};// 對象屬性并不在保護的范圍內,下面這個聲明會成功執行MY_OBJECT.key = "otherValue";// 也可以用來定義數組const MY_ARRAY = [];// It's possible to push items into the array// 可以向數組填充數據MY_ARRAY.push('A'); // ["A"]// 但是,將一個新數組賦給變量會引發錯誤MY_ARRAY = ['B']

下面介紹下在javascript中有三種聲明變量的方式:var、let、const。

var 聲明全局變量,換句話理解就是,聲明在for循環中的變量,跳出for循環同樣可以使用。

for(var i=0;i<=1000;i++){ var sum=0; sum+=i; } alert(sum);

聲明在for循環內部的sum,跳出for循環一樣可以使用,不會報錯正常彈出結果

let:聲明塊級變量,即局部變量。

在上面的例子中,跳出for循環,再使用sum變量就會報錯,有著嚴格的作用域,變量只作用域當前隸屬的代碼塊,不可重復定義同一個變量,不可在聲明之前調用,必須先定義再使用,會報錯,循環體中可以用let

注意:必須聲明'use strict';后才能使用let聲明變量否則瀏覽并不能顯示結果,

const:用于聲明常量,也具有塊級作用域 ,也可聲明塊級。

const PI=3.14;

它和let一樣,也不能重復定義同一個變量,const一旦定義,無法修改。

總結

以上所述是小編給大家介紹的JavaScript變量聲明var,let.const及區別淺析,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VeVb武林網網站的支持!


注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久久免费av| 久久久免费在线观看| 成年无码av片在线| 成人在线视频网站| 日av在线播放中文不卡| 欧美尤物巨大精品爽| 国产综合在线观看视频| 91精品久久久久久久久中文字幕| 中文字幕亚洲欧美日韩在线不卡| 欧美中文字幕精品| 大胆欧美人体视频| 日韩一二三在线视频播| 中文字幕国产亚洲2019| 欧美午夜宅男影院在线观看| 日本成人精品在线| 在线精品国产成人综合| 91精品国产91久久久久| 国产精品日日做人人爱| 91探花福利精品国产自产在线| 亚洲人成电影网站色| 久久精品国产91精品亚洲| 91日本视频在线| 国产欧美精品一区二区三区介绍| 国产精品久久久999| 中文字幕免费国产精品| 欧美国产一区二区三区| 国产精品专区第二| 欧美午夜影院在线视频| 懂色av一区二区三区| 欧美在线精品免播放器视频| 欧美精品18videosex性欧美| 日韩人在线观看| 日韩一区av在线| 午夜精品视频在线| 俺也去精品视频在线观看| 亚洲性av网站| 在线观看国产精品淫| 亚洲人成在线观看网站高清| 77777少妇光屁股久久一区| 国产精品成人av在线| 91av在线播放视频| 国产日韩在线看片| 97免费视频在线播放| 欧美激情综合亚洲一二区| 福利二区91精品bt7086| 国语自产精品视频在线看| 91中文在线视频| 国产日产欧美a一级在线| 一本色道久久88综合日韩精品| 超碰精品一区二区三区乱码| 欧美在线精品免播放器视频| 日韩在线观看视频免费| 日韩一区二区在线视频| 日韩69视频在线观看| 亚洲精品有码在线| 91欧美精品午夜性色福利在线| 欧美丝袜一区二区| 欧洲永久精品大片ww免费漫画| 福利二区91精品bt7086| 欧美视频第一页| 亚洲一区二区三区四区视频| 欧美丰满老妇厨房牲生活| 日韩中文字幕免费看| yw.139尤物在线精品视频| 国产精品私拍pans大尺度在线| 7m精品福利视频导航| 久久久久久久一区二区三区| 亚洲free性xxxx护士hd| 啪一啪鲁一鲁2019在线视频| 亚洲精品一区二区在线| 国产丝袜一区二区三区免费视频| 一本久久综合亚洲鲁鲁| 欧美成aaa人片在线观看蜜臀| 欧美人与物videos| 国产香蕉97碰碰久久人人| 欧美成人sm免费视频| 亚洲毛片在线观看.| 久久伊人免费视频| 亚洲福利视频网| 欧美在线日韩在线| 韩国福利视频一区| 亚洲视频在线观看网站| 久久视频在线播放| 国产亚洲欧美日韩一区二区| 日韩欧美在线视频免费观看| 午夜精品久久久久久久99黑人| 51ⅴ精品国产91久久久久久| 亚洲成人激情视频| 亚洲美女视频网| 欧美日韩中文字幕| 日韩精品一区二区视频| 97精品伊人久久久大香线蕉| 91视频免费网站| 97视频免费观看| 国产精品视频免费在线观看| 亚洲激情视频在线观看| 亚洲天堂第二页| 欧美日韩激情视频8区| 日韩欧美国产网站| 欧美人在线视频| 成人做爰www免费看视频网站| 久久精品视频导航| 国产精品一区二区久久国产| 日本一区二区在线免费播放| 欧美老女人性视频| 亚洲女人初尝黑人巨大| 青青久久av北条麻妃海外网| 日韩av片免费在线观看| 国产精品免费电影| 久久久黄色av| 日韩国产一区三区| 91精品视频在线看| 91九色综合久久| 一区三区二区视频| 97国产一区二区精品久久呦| 亚洲а∨天堂久久精品9966| 色综合久久中文字幕综合网小说| 国产这里只有精品| 欧日韩不卡在线视频| 国产视频精品久久久| 69久久夜色精品国产69乱青草| 最近2019年中文视频免费在线观看| 亚州av一区二区| 亚洲国产精久久久久久久| 日韩极品精品视频免费观看| 日韩av电影院| 91麻豆国产精品| 久久人人爽人人| 国模极品一区二区三区| 中文国产成人精品久久一| www日韩中文字幕在线看| 亚洲护士老师的毛茸茸最新章节| 亚洲人成77777在线观看网| 91免费精品国偷自产在线| 欧美午夜精品在线| 欧美国产日韩一区| 成人女保姆的销魂服务| 国内精品久久久久影院优| 日韩电影免费在线观看| 国产精品人成电影| 欧美精品日韩三级| 亚洲欧美日韩天堂一区二区| 成人福利视频在线观看| 视频一区视频二区国产精品| 日韩美女在线观看一区| 亚洲欧美日韩视频一区| 91在线观看免费高清| 国产亚洲精品美女久久久| 日韩网站免费观看| 亚洲成av人影院在线观看| 欧美日韩人人澡狠狠躁视频| 国产成人精品日本亚洲| 欧美视频在线观看 亚洲欧| 欧美一级电影免费在线观看| 国产精品高潮呻吟久久av黑人| 隔壁老王国产在线精品| 欧美激情免费看| 欧美激情喷水视频| 久久精品视频一| www.久久久久久.com| 国产精品91久久| 九九热最新视频//这里只有精品| 亚洲色在线视频| 欧美成aaa人片在线观看蜜臀|