자바스크립트에서

('b'+'a'+ +'a'+'a').toLowerCase()

의 결과는 banana 이다.

 

이유는 이렇다.

 

  1. 'b' + 'a'를 연결하면 'ba'가 된다.
  2. +'a'에서 +를 단항연산자로 인식해 자바스크립트 엔진은 'a'을 숫자로 형변환을 시도한다.
  3. 하지만 'a'는 숫자로 해석할 수 없는 값이라 NaN (Not a Number)을 반환한다.
  4. NaN + 'a' 를 시도하면 NaN은 문자열 "NaN"이 된다.
  5. 따라서 NaN + 'a' 는 "NaNa"가 된다.
  6. 결과적으로 ('b'+'a'+ +'a'+'a') 는 'baNaNa'가 되고 이를 소문자로 변환하면
  7. banana가 된다.

이상한 자바스크립트~..