您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關ES6中let、const的區別是什么,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
let和const
相同點
都存在塊級作用域
都不存在變量聲明提升
都會造成“暫時性死區”
在一個作用域下不可重復聲明
不同點
const一旦聲明必須立即賦值
const聲明的變量指向的內存地址不得改動。
變量解構賦值
數組的解構賦值
解構成功
let [a, b, c] = [1, 2, 3];
解構不成功
let [foo] = [];
不完全解構
let [x, y] = [1, 2, 3];
默認值
let [foo = true] = [];
解構條件:只要某種數據結構具有 Iterator 接口,都可以采用數組形式的解構賦值。
對象的解構賦值
與數組的區別:對象的解構與數組有一個重要的不同。數組的元素是按次序排列的,變量的取值由它的位置決定;而對象的屬性沒有次序,變量必須與屬性同名,才能取到正確的值。
應用:可以很方便地將現有對象的方法,賦值到某個變量。
let { log, sin, cos } = Math;
字符串的解構賦值
原理:字符串被轉換成了一個類似數組的對象。
const [a, b, c, d, e] = 'hello';
類似數組的對象都有一個length屬性,因此還可以對這個屬性解構賦值。
let {length : len} = 'hello'; len // 5
數值和布爾值的解構賦值
let {toString: s} = 123; s === Number.prototype.toString // true
let {toString: s} = true; s === Boolean.prototype.toString // true
函數參數的解構賦值
[[1, 2], [3, 4]].map(([a, b]) => a + b); // [ 3, 7 ]
關于“ES6中let、const的區別是什么”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。