제목: Inside Javascript

지은이: 송형주, 고현준


우선 저는 C++, C#을 주로 사용하다가 최근에 javascript를 공부하며 이것 저것 만들어보고 있는 사람입니다.

자바스크립트를 시작할 때 책 조금 훑어보고, 인터넷 찾아보며 개발을 하였습니다.

내심 C++에 비하면 자바스크립트는 뭐 아무것도 아니지 이런 생각이 있었던 것 같습니다. 개발을 하면서 기본적인 원리와 개념에 대한 이해가 부족해서 알고있는 방법으로만 자꾸 로직을 짜게되는 것 같아서 Inside Javascript를 보게되었습니다.


결론부터 말하자면 최고입니다!!

*프로그래밍을 javascript로 처음 접하는 분들에게는 권하지 않습니다. oop, c++등을 알고 있다는 가정하에 설명하는 부분이 상당히 있습니다.


클로저와 프로토타입, 함수 호이스팅등 자바스크립트의 주요 개념에 대해서 원리 부터 내부적으로 어떻게 동작하는지 추상적으로 알 수 있게끔 잘 설명이 되어 있습니다.


그리고, 말 그대로 javascript의 내부 코드를 그대로 구현해보는 예제들이 꽤 수록되어 있습니다. 개념을 배우고 이 개념이 javascript 혹은 라이브러리에는 어떻게 쓰여있는지 소스코드를 통해 확인할 수 있습니다.



책을 보고 느낀 점은 "javascript 재밌다!"와 "나 진짜 모르면서 했구나..." 입니다. javascript 너무 안일하게 봤었던 것 같습니다.

무미 건조하게 javascript를 사용했었는데 클로저와 this binding등을 통해서 새로운 방식으로 프로그래밍을 할 수 있을 것 같습니다. 


여지껏 사용할 때 C++로 개발할 때 했던 방식에 최대한 맞춰서 oop를 흉내내곤 했었는데 좀 다르게 사용해보고 싶어지네요.


좋은책입니다.










인사이드 자바스크립트를 공부하며 정리하는 포스팅입니다.




자바스크립트 데이터 타입


언어의 기본인 데이터 타입입니다.

자바스크립트의 데이터 타입은 크게 아래와 같이 분류할 수 있습니다.




기본 타입



1. Number


자바스크립트에서는 단 하나의 숫자형만 존재합니다. 모든 숫자를 64비트 부동 소수점 형태로 저장합니다.


2. String


문자열은 작은 따음표('), 큰 따옴표(")로 생성할 수 있습니다.


자바스크립트에서는 C++의 문자열 배열과 같이 문자열에 접근은할 수 있지만 수정은 할 수 없습니다. 

자바스크립트에서는 한 번 생성된 문자열은 읽기만 가능하지 수정은 불가능합니다.


var str = 'test';
str[0] = 'T';
console.log(str); //결과는 'test'


3. Boolean


자바스크립트에서는 true와 false 값을 나타내는 Boolean 타입을 가진다.



4. null, undefined


이 두 타입은 모드 자바스크립트에서 '값이 비어있음'을 나타낸다. 

기본적으로 값이 할당되지 않은 상태의 변수는 undefined이다. 


undefined 타입 변수의 값 자체도 undefined 이다. 즉, undefined는 타입이자 값을 나타낸다.

null 타입 변수의 경우는 개발자가 명시적으로 값이 비어있음을 나타내는 데 사용한다.


null 타입 변수의 typeof의 결과는 object이다. 


때문에 함수내에서 예외처리시 if(typeof test === 'object')와 같은 형태로 사용하다가 null 타입 변수가 의도치 않게 통과될 수 있습니다. 주의하여야 합니다. 저도 종종 이러한 실수를 한 적이 있습니다.. 


null 타입 변수인지를 확인할 때에는 typeof 연산자가 아닌 값으로 확인해야 합니다.