프로젝트 소개

# What the f*ck JavaScript? 이 저장소는 2012년 dotJS에서 Brian Leroux의 "WTFJS" 발표에서 영감을 받은, 유머러스하고 당혹스러운 자바스크립트 예제 모음입니다. 기이한 코드 조각을 모으고, 종종 ECMA-262 명세를 참조하며 어떻게 동작하는지 설명하는 것을 목표로 합니다. 이 핸드북은 오프라인에서 읽을 수 있도록 npm 패키지(`wtfjs`)로 제공되며, 중국어, 힌디어, 프랑스어, 포르투갈어, 폴란드어, 이탈리아어, 한국어를 포함한 여러 언어로 번역되었습니다. ## 내용 개요 이 목록에는 60개 이상의 예제가 포함되어 있으며, 각 예제에는 코드 조각과 자세한 설명이 있습니다. 주제는 다음과 같습니다: - **동등성과 강제 변환의 특이점**: 예를 들어 `[] == ![]`는 `true`, `true == []`는 `false`, `null == false`는 `false`입니다. - **NaN과 숫자의 이상한 점**: `NaN === NaN`은 `false`, `Number.MIN_VALUE > 0`은 `true`, `parseInt`의 경계 사례. - **배열과 문자열 동작**: 배열 연결, 후행 쉼표, 배열 동등성 괴물. - **함수와 클래스의 변칙**: `class Foo extends null` 오류, 화살표 함수가 생성자가 아닌 점. - **기타 트릭**: `"b" + "a" + +"a" + "a"`는 `'baNaNa'`가 되고, 자바스크립트의 HTML 주석, `document.all`이 undefined인 점 등. 각 예제에는 ECMA-262 명세의 관련 섹션이나 외부 참고 자료로의 링크가 주석으로 달려 있어, 더 깊은 이해를 원하는 초보자와 자바스크립트의 예상치 못한 경계를 모아 보고 싶은 전문가 모두에게 유용한 참고 자료가 됩니다. ## 동기 주된 목표는 재미와 학습입니다. 저자는 초보자든 숙련된 개발자든 독자가 명세를 탐구하고 새로운 무언가를 발견하도록 권장합니다. ## 사용법 npm으로 설치: ``` $ npm install -g wtfjs ``` 그런 다음 `wtfjs`를 실행하면 선호하는 페이저에서 매뉴얼이 열립니다. ## 번역 여러 언어에 대해 커뮤니티에서 유지 관리하는 번역이 있지만, 모든 예제를 포함하지 않거나 최신 상태가 아닐 수 있습니다. ## 라이선스 WTFPL 2.0 라이선스로 배포됩니다.