ES6中let、const的區別及變數的解構賦值操作方法例項分析
阿新 • • 發佈:2020-11-26
本文例項講述了ES6中let、const的區別及變數的解構賦值操作方法。分享給大家供大家參考,具體如下:
宣告:本文內容依照阮一峰老師ECMAScript 6 入門一書所總結。
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 ]
更多關於JavaScript相關內容可檢視本站專題:《javascript面向物件入門教程》、《JavaScript錯誤與除錯技巧總結》、《JavaScript資料結構與演算法技巧總結》、《JavaScript遍歷演算法與技巧總結》及《JavaScript數學運算用法總結》
希望本文所述對大家JavaScript程式設計有所幫助。