공부한 것
- LeetCode #212. Word Search II
보조 재귀함수를 구현하였다.
해결해야 할 것: 첫 문자가 어느 칸에 나오는지를 찾아갈 수 있게 만들기. 한 단어가 같은 칸을 두 번 가지 못하도록 수정하기(사실 이건 거의 구현했다고 생각하는데 왜 작동을 안하는지 모르겠다).
- 단항 비트 논리부정 연산자(Bitwise NOT) “
~
”: 숫자를 32 비트(이진수)로 나타내어 0과 1을 반전한 결과를 반환한다.
const a = 5; // 00000000000000000000000000000101 const b = -3; // 11111111111111111111111111111101 console.log(~a); // 11111111111111111111111111111010 // Expected output: -6 console.log(~b); // 00000000000000000000000000000010 // Expected output: 2 console.log(~3.4) // -4
x를 전환(Bitwise NOTing)하면 -(x + 1)의 값을 얻게 된다. 즉, 양수와 음수 양측으로 전환될 때 음수 쪽 절대값이 1이 더 큰 규칙이라고 보면 되겠다.
이를 응용하여 두 번 연달아 붙이면
Math.floor()
대신으로 사용 가능하다. 더 간결하고, 속도도 더 빠르다고 한다.// 기존: Math.floor(4.9) === 4 // true; // 축약기법: ~~4.9 === 4 // true;
- 옵셔널 체이닝
?.
: 중첩(체이닝)으로 객체의 속성에 접근하거나 함수를 호출할 때 쓰여서, 만약 중간 결과가
undefined
나null
이라면 에러를 던지는 대신에undefined
를 반환하도록 한다.// 문법: obj.val?.prop obj.val?.[expr] obj.func?.(args) const dogName = adventurer.dog?.name; console.log(dogName) // .dog가 정의되어 있지 않을 때 undefined;
Uploaded by N2T