4 ** (1/2) // 2
8 ** (1/3) // 2
JS에서의 연산은 왼쪽에서 오른쪽으로 순차적으로 진행된다.
2 + 2 + '1' // '41'
후위형 연산자 i++은 i의 연산이 끝난 후 +1을 해준다.
전위형 연산자인 ++i는 +1을 해준 후 연산을 진행한다.
let i = 0;
1 + i++ // 1
let j = 0;
1 + ++j // 2
기존에는 String에서의 비교를 아스키코드를 통해 한다고 생각하고 있었으나, 잘못된 생각이다.
String을 비교할 때는 유니코드를 기준으로 비교해준다!
"가" > "나" // false
"A" < "B" // true
또, 긴 문자열을 비교할 때 앞에서부터 하나씩 비교해 나간다.
"가나다" == "가다나" // 가를 비교하고, 같기때문에 2번째를 비교, 다르기때문에 false를 반환
OR연산자를 여러 개 체이닝 하면, 첫 번째 truthy를 반환한다. 만약 truthy가 없다면 마지막 피연산자를 반환한다.
alert( 1 || 0 ); // 1 (1은 truthy임)
alert( null || 1 ); // 1 (1은 truthy임)
alert( null || 0 || 1 ); // 1 (1은 truthy임)
alert( undefined || null || 0 ); // 0 (모두 falsy이므로, 마지막 값을 반환함)
아래와 같이 활용할 수 있다.
let firstName = "";
let lastName = "";
let nickName = "바이올렛";
alert( firstName || lastName || nickName || "익명"); // 바이올렛
지난주에 진행하였던 프로젝트에도 적용했던 구절이 있었다. 단순히 앞의 변수가 null이면 뒤의 변수를 지정해주는 역할이였는데, 원리를 알고 나니 이렇게 동작하는구나! 반가웠다.
`${postUserEmailId || '@익명사용자'}`
`${userImage || './assets/imgs/nullimage.png'}`
자료를 숫자형으로 바꾸거나, 불리언형으로 바꿀 때 사용할수 있는 트릭이다.
+"5" // 5
!!null // false
!!"string" // true