Javascript/WTF 4

[WTF JS] 3. true == [] 랑 true == ![] 같은 거 알고있지?

// case 1 true == []; // -> false true == ![]; // -> false // case 2 false == []; // -> true false == ![]; // -> true 왜 위처럼 나올까??? 어째서 같지??? 여기서는 저번 설명에서 말한 것 처럼 JS에서는 빈배열은 숫자로 강제 변환하는 것을 이용해서 이해해야 한다. 2019/10/20 - [Javascript/WTF] - [WTF JS] 1. [] == ![] 는 true 그럼 이제 case 1을 먼저 보자 // case 1 1. true == []; // -> false 2. true == ![]; // -> false ==> 1 true == []; // Boolean, Array true == 0; // ..

Javascript/WTF 2019.11.03

[WTF JS] 2. '32' 숫자 변환은 + 오퍼레이터!! No parseInt, parseFloat

const a = '32' // '32' const b = +a // 32 parseInt 보다 좋은 장점은 null일 경우에 safe하게 할 수 있습니다. 위 처럼 null에 대해서 0이 나오기에 우리가 어떠한 연산시 안전하게 할 수 있습니다. 예) hab = 100 + +b ( b가 null일 경우 0으로 처리, parseInt시 에러발생 ) parseInt만 쓰지 말고 +도 써보는 것은 어떤가요? - 협업에서는 가독성이 중요하기에 parseInt, parseFloat가 더 좋을수도 있습니다. 하지만 실무에서는 const result = a || 0 위와 같은 형태를 많이 사용합니다.

Javascript/WTF 2019.11.02

[WTF JS] 1. [] == ![] 는 true

1. WTF [] == ![] // true 왓더퍽!!! 왜 true가 나와 2. 이유 이 현상을 이해하기 위해서는 The abstract equality operator 에 대해서 알아야 한다. == 는 추상적인 비교를 하고 ===는 엄격한 비교를 한다고 보며 된다. == 를 통해서 비교를 할때, JS에서는 서로 타입을 같게해서 비교한다. 예) 1 == '1' / 왼쪽은 숫자형, 오른쪽은 문자형이다. 서로 타입이 다르기에 JS는 서로 타입을 같게 만든다. 어디 결과를 볼까? 1 == '1' // 왼쪽 타입: Number, 오른쪽 타입: string 1 == 1 // 왼쪽 타입: Number, 오른쪽 타입: Number true // 비교 위에 같은 원리로 인해서 [] == ![] 는 true가 나오는 ..

Javascript/WTF 2019.10.20