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

首頁 > 編程 > JavaScript > 正文

JavaScript ES6中const、let與var的對比詳解

2019-11-19 16:18:53
字體:
來源:轉載
供稿:網友

ECMAScript 6 新增 const 和 let 命令,用來聲明變量。

聲明方式 變量提升 作用域 初始值 重復定義
const 塊級 需要 不允許
let 塊級 不需要 不允許
var 函數級 不需要 允許

變量提升:const 和 let 必須先聲明再使用,不支持變量提升

console.log(c1, l1, v1);// 報錯// Uncaught ReferenceError: c1 is not defined const c1 = 'c1';let l1 = 'l1';var v1 = 'v1';

作用域:const,let 支持塊級作用域,有效避免變量覆蓋

const c21 = 'c21';let l21 = 'l21';var v21 = 'v21'; if (0.1 + 0.2 != 0.3) { const c21 = 'c22'; let l21 = 'l22'; var v21 = 'v22';  console.log(c21, l21, v21); // 輸出 c22 l22 v22} console.log(c21, l21, v21);// 輸出 c21 l21 v22

塊級作用域,在外層不能直接訪問內層變量

if (0.1 + 0.2 != 0.3) { const c22 = 'c22'; let l22 = 'l22'; var v22 = 'v22';  console.log(c22, l22, v22); // 輸出 c22 l22 v22} console.log(c22, l22, v22);// 報錯// Uncaught ReferenceError: c22 is not defined// 同樣地, l22 is not defined

const 定義常量,該常量不能賦值,但該常量的屬性可以賦值

const c231 = {};const c232 = []; c231.name = 'seven';c232.push(27); console.log(c231, c232);// 輸出 {name: "seven"} [27] // 禁止給對象賦值,應該使用 Object.freeze const c233 = Object.freeze({});const c234 = Object.freeze([]); c233.name = 'seven';// 普通模式下不報錯// 嚴格模式下報錯// Uncaught TypeError: Cannot add property name, object is not extensible  c234.push(27);// 普通模式下就會報錯// Uncaught TypeError: Cannot add property 0, object is not extensible console.log(c233, c234);// 輸出 {} []

全局變量不再設置為頂層對象(window)的屬性,有效避免全局變量污染

const c24 = 'c24';let l24 = 'l24'; console.log(c24, l24);// 輸出 c24 l24 console.log(window.c24, window.l24);// 輸出 undefined undefined

符合預期的 for 循環

for (var i = 0; i != 3; i++) { setTimeout(function() {  console.log(i); },10);}// 依次打印for (let i = 0; i != 3; i++) { setTimeout(function() {  console.log(i); },10);}// 依次打印,為啥呢

可以看到在 for 循環中使用 let 方式聲明變量才是符合預期。

在 for 中每一次循環,let 都是重新聲明變量,并且因為 JavaScript 引擎會記住上一次循環的值,初始化 i 時在上一輪的基礎上計算。

可以看到在 for 循環中至少有兩層作用域,看下面的例子更容易理解。

for (let i = 0; i != 3; i++) { let i = 'seven'; console.log(i);}console.log('eight');// 依次打印sevensevenseveneight

初始值:const 聲明的變量必須設置初始值,且不能重復賦值。

const c3 = 'c3';let l3 = 'l3';var v3 = 'v3'; console.log(c3, l3, v3);// 輸出 c3 l3 v3 c3 = 2; // Uncaught TypeError: Assignment to constant variablel3 = 2;v3 = 2; console.log(c3, l3, v3);// 輸出 c3 2 2 const c32;// 報錯// Uncaught SyntaxError: Missing initializer in const declaration

重復定義:const 和 let 不支持重復定義

const、let 縮小了變量作用域,完美避免變量污染;const 固定變量(即固定變量類型),對于弱類型 JavaScript 來說,可以明顯提升性能。推薦在應用中使用 const、let 聲明變量。

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對武林網的支持。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久久免费高清电视剧观看| 日韩在线观看免费全| 日韩精品日韩在线观看| 国产热re99久久6国产精品| 久久精品中文字幕免费mv| 欧美洲成人男女午夜视频| 中文字幕亚洲国产| 成人激情视频小说免费下载| 亚洲va码欧洲m码| 97视频com| 中文字幕一区二区三区电影| 91精品免费看| 国产精品海角社区在线观看| 成人国产精品av| 97精品一区二区视频在线观看| 亚洲成人三级在线| 精品国产鲁一鲁一区二区张丽| 国产精品免费福利| 亚洲女同性videos| 国产在线观看91精品一区| 亚洲性线免费观看视频成熟| 亚洲无线码在线一区观看| 亚洲人成在线电影| 日韩欧美亚洲成人| 国产精品第七影院| 精品激情国产视频| 国产日韩换脸av一区在线观看| 欧美日韩视频免费播放| 国产精品www| 成人福利视频网| 在线免费观看羞羞视频一区二区| 国产国产精品人在线视| 精品偷拍一区二区三区在线看| 久久亚洲欧美日韩精品专区| 亚洲自拍偷拍色片视频| 97国产成人精品视频| 不卡在线观看电视剧完整版| 欧美性xxxxxxx| 亚洲欧美日韩国产精品| 欧美一级大片在线观看| 国产日韩欧美成人| 欧美激情伊人电影| 亚洲国产女人aaa毛片在线| 国产精品久久一区| 久久久久久亚洲精品中文字幕| 国产美女直播视频一区| 1769国内精品视频在线播放| 亚洲人成电影网站色www| 精品亚洲夜色av98在线观看| 欧美成人在线免费视频| 欧美电影电视剧在线观看| 亚洲色图五月天| www.亚洲天堂| 欧美成人精品h版在线观看| 日韩av免费一区| 日韩av免费看网站| 久久99精品视频一区97| 久久99热这里只有精品国产| 欧美黑人xxx| 国产69精品久久久| 日本成人激情视频| 欧美日韩免费一区| 国产丝袜精品视频| 羞羞色国产精品| 成人免费看黄网站| 欧美极品少妇全裸体| 性金发美女69hd大尺寸| 亚洲电影av在线| 在线观看免费高清视频97| 久久久精品一区二区三区| 国内外成人免费激情在线视频网站| 亚洲国产成人精品久久| 欧美黄色片免费观看| 一区二区三区四区视频| 亚洲成人教育av| 欧美高清在线播放| 国产精品伦子伦免费视频| 精品久久香蕉国产线看观看亚洲| 国产精品一区久久久| 在线成人中文字幕| 欧美亚洲激情视频| 国内精品久久久久久久久| 精品成人69xx.xyz| 国产精品www网站| 91成人福利在线| 亚洲xxxx18| 亚洲国产免费av| 日韩中文娱乐网| 亚洲一区亚洲二区| 97精品视频在线观看| 亚洲欧美激情另类校园| 国产精品毛片a∨一区二区三区|国| 日本欧美一级片| 久久夜色精品国产| 伦伦影院午夜日韩欧美限制| 伊人一区二区三区久久精品| 亚洲国产一区二区三区在线观看| 午夜免费在线观看精品视频| 岛国av一区二区| 国产精品欧美日韩| 一个人看的www欧美| 亚洲精品福利在线观看| 亚洲精品国产电影| 成人精品在线观看| 日韩专区中文字幕| 国产福利精品av综合导导航| 欧美第一淫aaasss性| 麻豆国产va免费精品高清在线| 色噜噜亚洲精品中文字幕| 日韩一二三在线视频播| 久久在精品线影院精品国产| 国产精品第一第二| 欧美在线观看网站| 欧美诱惑福利视频| 亚洲专区国产精品| 91影院在线免费观看视频| 欧美日韩激情视频8区| 国产精品久久久久久久天堂| wwwwwwww亚洲| 国产做受69高潮| 国产欧美va欧美va香蕉在线| 精品视频久久久久久久| 亚洲精品91美女久久久久久久| 亚洲a一级视频| 欧美精品午夜视频| 国产美女主播一区| 欧美在线一级视频| 8x海外华人永久免费日韩内陆视频| 日韩欧美极品在线观看| 亚洲第一视频网| 国产精品激情av在线播放| 精品久久久国产| 国产精品美女999| 91综合免费在线| 亚洲三级黄色在线观看| 91久久久精品| 亚洲欧美日韩一区在线| 亚洲天天在线日亚洲洲精| 97香蕉久久夜色精品国产| 亚洲理论片在线观看| 国产在线拍揄自揄视频不卡99| 91精品国产亚洲| 在线看片第一页欧美| 91久久久久久久久久| 91久久久亚洲精品| 亚洲精品aⅴ中文字幕乱码| 亚洲tv在线观看| 久久五月情影视| 不卡av电影院| yw.139尤物在线精品视频| 亚洲精品国产成人| 色诱女教师一区二区三区| 亚洲精品视频网上网址在线观看| 精品视频久久久久久久| 久久91精品国产| 有码中文亚洲精品| 亚洲网站在线播放| 亚洲第一男人av| 精品av在线播放| 久久久久久久999精品视频| 国产99久久久欧美黑人| 欧美成人在线影院| 一区二区三区视频在线| 亚洲精品久久久久中文字幕欢迎你|