포스팅하는이유
자바스크립트의 타입을 알아보자
자바스크립트의 타입_2와 TDZ
자바스크립트 배열은 타입이 엄격한 다른 언어와 달리 문자열, 숫자, 객체 심지어 다른 배열이나(배열 속에 배열로 다 차원 배열을 만든다)어떤 타입의 값이라도 담을 수 있는 그릇이다.
흔히 문자열은 단지 문자의 배열이라고 생각한다. 엔진이 내부적으로 배열을 쓰도록 구현되었는지는 모르곘지만 자바스크립트 문자열은 실제로 생김새만 비슷할 뿐 배열과 같지 않다는 사실을 알아야한다.
C와 같은 전통적인 컴파일 언어를 쓰는 개발자들은 '0으로 나누기(Divide By Zero) 비슷한 컴파일/런타일 에러를 숱하게 보았을것이다.
1,2 장에서 보통 네이티브(의미 그대로 원주민, 원래있던것 즉 ECMAscript 명세의 내장 객체를 의미)라고 하는 여러가지 내장 타입을 몇 차례 넌지시 얘기했다.
3.4.5 네이티브 프로토타입 > 내장 네이티브 생성자는각자의 prototype 객체를 가진다(Array.prototype 같은) prototype 객체에는 해당 객체의 하위 타입별로 고유한 로직이 담겨있다. 원시 문자열을 박싱한 것 까지 포함하여 모든 String
앞서 말했던 강제변환을 배워보자
truthy값의 의미는 정확히 무엇일까? 다시 이야기하지만 falsy 값 목록에 없으면 무조건 truthy값이다.
(이전에 내용은 과감히 패스했다)\+연산자는 숫자의 덧셈, 문자열 접합 두가지 목적으로 오버로드 된다. 자바스크립트 엔진은 연산자를 보고 어떤 연산을 해야 할지 어떻게 알까?
느슨한 동등 비교 == 엄격한 동등 비교 ==는 강재변환을 허용하지만 ===는 강재변환을 허용하지 않는다느슨한 비교는 강재변환을 하기때문에 엄격한 비교에 비해서 성능이 떨어질수있지만거의 차이가 없으므로 성능을 위해 편식을 하진 말자느슨한 비교는 추상적 알고리즘에 의해