--- tags: JavaScript --- # JavaScript 小筆記 ## Destructuring ```javascript let [a, b] = [10, 20] console.log(a, b) // 10, 20 // Rest pattern,一定要放在最後方 let [a, b, ...rest] = [10, 20, 30, 40, 50] console.log(a, b, rest) // 10, 20, [30, 40, 50] // Ignore some values let [a, ,b] = [1, 2, 3, 4] console.log(a, b) // 1, 3 // 新宣告的變數名與物件內的名稱相同 let { z, y, x } = { x: 1, y: 2, z: 3 } console.log(x, y, z) // 1, 2, 3 // 可定義對照的 key let pets = { dog: '汪', cat: '喵', fish: '...'} let { dog: petA, cat: petB, ...otherPets } = pets console.log(petA) // 汪 // Swap let a = 1, b = 2; [a, b] = [b, a] console.log(a, b) // 3, 1 ``` ## Array ```javascript arr = [1] arr.unshift(3) // arr = [3, 1], Add as the first element arr.shift() // arr = [1], return = 3, Remove first element and return it arr.push(3) // arr = [1, 3], Add as the last element arr.pop() // arr = [1], return = 3, Remove last element and retur ``` ![](https://i.imgur.com/lPhphUi.png) ## Spread ```javascript let arr = [...[1, 2], ...[3, 4]] console.log(arr) // [1, 2, 3, 4] let dict = {...{a: 1, b: 1}, ...{b: 2}} console.log(dict) // {a: 1, b: 2} ``` ## Boolean ```javascript > !!0 // Cast a variable to boolean false ```