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

首頁 > 編程 > JavaScript > 正文

深入淺析var,let,const的異同點

2019-11-19 13:20:01
字體:
來源:轉載
供稿:網友

一、let和var區別

1.關于變量提升,var能變量提升,let不能

 // 關于var 如下所示console.log(a); //輸出undefined,此時就是變量提升var a = 2;  console.log(a); //2//相當于下面的代碼var a; //聲明且初始化為undefinedconsole.log(a); //輸出undefineda=2;    //賦值console.log(a); //2// 關于let 如下所示console.log(a); // 報錯ReferenceErrorlet a = 2;//相當于在第一行先聲明a但沒有初始化,直到賦值時才初始化//直接用let聲明變量不賦值是會打印undefined,這時候初始化了let a;console.log(a);//值為undefined

2.暫時性死區:塊級作用域內存在let命令,它所聲明的變量就“綁定”這個區域,不再受外部的影響重點內容,簡而言之,就是某個代碼塊有let指令,即使外部有名稱相同的變量,該代碼塊的同名變量與外部的變量也互不干擾。而var不會,如下所示:

//letvar a = 123;if (true) { let a="abc"; console.log(a); //輸出abc }console.log(a);  //輸出值為123,全局a與局部a互不影響//varvar a = 123;if (true) { var a="abc"; console.log(a); //輸出abc }console.log(a);  //輸出值為abc,全局的已被改變

總之,在代碼塊內,使用let命令聲明變量之前,該變量都是不可用的。這在語法上,稱為“暫時性死區”(temporal dead zone,簡稱 TDZ)。例子如下:

var tmp=1;if (true) { // TDZ開始 tmp = 'abc'; // ReferenceError console.log(tmp); // ReferenceError let tmp; // TDZ結束 console.log(tmp); // undefined tmp = 123; console.log(tmp); // 123}console.log(tmp); // 

3.let聲明綁定的代碼塊內,不能重復聲明同一個變量,var可以

//a不能重復聲明function sub() { let a = 10; var a = 1;}  //報錯,Identifier 'a' has already been declaredfunction sub() { let a = 10; let a = 1;}  //同上function sub() { let a = 10; {let a = 1;} //此時不在同一個代碼塊,不會報錯} //var可以重復聲明,不會報錯function sub() { var a = 10; var a = 1;}

4.類似for循環的代碼塊,let只在代碼塊內部有效,var在代碼塊外部也有效

//let只在代碼塊內部有效for (let i = 0; i < 10; i++) {}console.log(i); //報錯ReferenceError: i is not defined//var在代碼塊外部也有效for (let i = 0; i < 10; i++) {}console.log(i); //101let在for循環內特別之處:就是設置循環變量的那部分是一個父作用域,而循環體內部是一個單獨的子作用域。//只在父作用域var a = [];for (let i = 0; i < 10; i++) { a[i] = function () {  console.log(i); };}a[6](); // 6//子作用域重新聲明var a = [];for (let i = 0; i < 10; i++) { a[i] = function () {   let i=3; //重新賦值   console.log(i); };}a[6](); // 3 ,取得新的值

二、let和const

1、相同點:

A、變量不提升。
B、暫時性死區,只能在聲明的位置后面使用。
C、不可重復聲明。

2、不同點:

let聲明的變量可以改變。
const聲明一個只讀的常量。一旦聲明,常量的值就不能改變,且聲明的時候必須初始化賦值。
let a;  //undefined
const b;//報錯,聲明的時候必須賦值

let a=1;
a=2;    //可改變

const b=1;
b=2;    //報錯,不能改變值

//一些自己覺得要注意的點
let a=null;         //a=null
a=undefined;    //a=undefined
a=2;            //a=2
const a=null;   //a=null,const也可以定義null和undefined
const b=undefined;   //b=undefined
b=2;            //報錯,不能改變值

本質:

const實際上保證的,并不是變量的不得改動,而是變量指向的那個內存地址所保存的數據不得改動。

A、五種基本數據類型(Number,String,Boolean,Undefined,Null):值就保存在變量指向的那個內存地址,等同于常量。不能改變值。

B、復雜數據類型(Object:數組、對象):該類型變量名不指向數據,而是指向數據所在的地址,const只保證變量名指向的地址不變,并不保證改地址的數據不變,因此可以對該地址的屬性值進行修改,但是不能改變地址指向。

const a=[];a.push("Hello"); //可執行,改地址的屬性值可以修改a.length=0;   //可執行,同上a=["Tom"];   //報錯,不能改變地址指向const b ={};b.prop=123;   //為b添加一個屬性,可以成功b.prop    //123b={};    //將b指向另外一個地址,就會報錯如果真的想將對象凍結,應該使用Object.freeze方法。const b=Object.freeze({});// 常規模式時,下面一行不起作用,b.prop為undefined// 嚴格模式時,該行會報錯b.prop = 123;

總結

以上所述是小編給大家介紹的var,let,const的異同點,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林網網站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
在线观看日韩www视频免费| 亚洲成色777777女色窝| 国产国语videosex另类| 久久在精品线影院精品国产| 欧美黄色片免费观看| 久久夜精品香蕉| 欧美孕妇与黑人孕交| 亚洲精品乱码久久久久久按摩观| 福利视频导航一区| 成人性教育视频在线观看| 国产精品电影网| 日韩av大片在线| 国产精品电影久久久久电影网| 欧美噜噜久久久xxx| 亚洲美女视频网| 中文字幕在线看视频国产欧美在线看完整| 色偷偷亚洲男人天堂| 国产精品久久久久aaaa九色| www.午夜精品| 国产亚洲精品久久久久久777| 26uuu日韩精品一区二区| 久久久视频在线| 一级做a爰片久久毛片美女图片| 国产欧美精品日韩精品| 国产精品第二页| 亚洲成人a**站| 精品成人乱色一区二区| 精品国产91久久久久久老师| zzijzzij亚洲日本成熟少妇| 国产精品18久久久久久首页狼| 亚洲最新av在线| 91久久久久久久| 国产精品xxx视频| 亚洲欧洲av一区二区| 日本一区二区三区四区视频| 日韩欧美在线网址| 久久精品国产成人| 亚洲欧美日韩精品久久| 久久久精品国产亚洲| 亚洲综合色激情五月| 久久久久久久国产| 美女黄色丝袜一区| 久久理论片午夜琪琪电影网| 国产一区二区三区三区在线观看| 精品久久久久久久中文字幕| 久久99视频精品| 国产日韩av在线| 国产亚洲精品激情久久| 97精品国产97久久久久久春色| 国产精品自产拍在线观看中文| 欧美高清视频在线播放| 国产精品男女猛烈高潮激情| 欧美巨乳在线观看| 91av在线影院| 欧美中在线观看| 亚洲男人天堂网| 久久综合久久八八| 欧美日韩一区二区在线| 91天堂在线观看| 日韩免费观看高清| 色小说视频一区| 成人激情在线播放| 久久精品国产成人| 午夜精品www| 狠狠色狠色综合曰曰| 国产91在线播放九色快色| 久久久久久999| 久久久久久久av| 91av免费观看91av精品在线| 久久亚洲欧美日韩精品专区| 精品女同一区二区三区在线播放| 亚洲电影第1页| 亚洲曰本av电影| 91精品啪在线观看麻豆免费| xxx欧美精品| 欧美成人剧情片在线观看| 国产一区二区三区视频| 日韩精品极品毛片系列视频| 亚洲精品国产拍免费91在线| 精品久久国产精品| 91久久国产综合久久91精品网站| 国产精品欧美激情在线播放| 国产亚洲一区二区在线| 8x海外华人永久免费日韩内陆视频| 亚洲成人久久网| 精品久久久久久中文字幕一区奶水| 欧美影院成年免费版| 亚洲国产精品嫩草影院久久| 国产精品99一区| 亚洲成人xxx| 亚洲一区二区日本| 亚洲人高潮女人毛茸茸| 成人av.网址在线网站| 国产一区二区香蕉| 久久九九精品99国产精品| 亚洲精品成a人在线观看| 中文字幕最新精品| 久久久久久久久国产精品| 亚洲精品久久久久久久久| 97超碰国产精品女人人人爽| 亚洲一区二区三区四区在线播放| 欧美在线视频在线播放完整版免费观看| 深夜福利91大全| 日韩电影免费观看中文字幕| 久久色在线播放| 精品久久久久久久大神国产| 精品亚洲va在线va天堂资源站| 亚洲国产精品成人va在线观看| 亚洲视频在线看| 91精品91久久久久久| 国产97人人超碰caoprom| 日韩欧美在线国产| 久久艹在线视频| 国产91av在线| 久久香蕉精品香蕉| 久久夜色精品国产欧美乱| 91精品久久久久久久久久久| 日韩av色综合| 日韩成人免费视频| 欧美性受xxxx白人性爽| 久久久久久久91| 久久久噜噜噜久久久| 中文字幕欧美日韩va免费视频| 亚洲第一精品久久忘忧草社区| 精品视频在线导航| 538国产精品一区二区免费视频| 亚洲片国产一区一级在线观看| 亚洲精品按摩视频| 亚洲一级免费视频| 欧美另类xxx| 伊人久久男人天堂| 欧美另类老女人| 欧美贵妇videos办公室| xxx一区二区| 亚洲午夜女主播在线直播| 日韩av电影在线网| 操日韩av在线电影| 欧美日韩第一页| 色综合久久88| 亚洲片在线观看| 精品丝袜一区二区三区| 国产精品香蕉国产| 欧美大片欧美激情性色a∨久久| 狠狠色狠狠色综合日日五| 亚洲欧美日韩中文视频| 97超级碰在线看视频免费在线看| 成人精品一区二区三区电影免费| 久久777国产线看观看精品| 欧美日韩国产影院| 亚洲精品小视频在线观看| 最近中文字幕mv在线一区二区三区四区| 久久久久北条麻妃免费看| 日韩在线观看免费全集电视剧网站| 日韩精品在线观看一区二区| 日韩一区视频在线| 久久久av一区| 国产精品美腿一区在线看| 欧美美女18p| 亚洲自拍偷拍色片视频| 国产精品久久久久久久9999| 日韩欧美在线视频| 亚洲视频电影图片偷拍一区| 北条麻妃在线一区二区| 国产亚洲成精品久久|