논리 연산자 "||" 활용
let m = new Map();
for (let n of array) m.set(n, (m.get(n) || 0) + 1);
Array 의 "from"
const numbers = Array.from({ length: 5 }, (_, i) => i);
// [0, 1, 2, 3, 4]
Array 의 "filter"
const evens = [1,2,3,4,5].filter(i => i % 2 === 0));
// [2, 4]
"~" 비트 not 연산자 한번
~1 은 -2
~0 은 -1
~-1 은 0
~-2 은 1
"~~" 비트 not 연산자 두번
한번 ~ 연산자를 사용하면, 모든 비트를 반전
두 번 사용하면 원래의 비트로 돌아옵니다
(비트 NOT 연산자를 두 번 사용하면 원래의 수로 돌아옴)
하지만 타입과 수의 표현 방식(bitwise representation)의 차이로 인해
실제로는 우리가 원하는
"반올림하고, 소수점 이하를 제거"하는 동작
console.log(~~4.9); // 4
console.log(~~(-4.9)); // -4
무한 반복문 while , for
// while 문이 작용하는 true 가 조건
while(true) {
...
}
// 가운데 제한이 없음
for (let i = n; ; i+=n) {
...
}
Array 의 요소 접근 "At"
const array = [1,2,3,4,5];
// 마지막 요소와 그 전 요소로 접근하기
console.log(array.at(-1)); // 5
console.log(array.at(-2)); // 4
Array 의 마지막 요소 반환 후 삭제 "pop"
const array = [1,2,3,4,5];
// 마지막 요소 제거 후 출력
console.log(array.pop()); // 5
console.log(array); // [1,2,3,4]
Array 의 리버스 "reverse"
const array = [1,2,3,4,5].reverse();
// 마지막 요소 제거 후 출력
console.log(array); // [5,4,3,2,1]
Array 의 요소 디스트럭처링
const myArray = [1, 2, 3];
const [x, y, z] = myArray;
console.log(x, y, z); // 1 2 3
const [a, b] = myArray;
console.log(a, b); // 1 2
const [c, ...d] = myArray
console.log(c, d); // 1 [2, 3]