Start JavaScript!

잡담

책 산지가 언젠데… 아직도… 보고있다니… 부끄럽다.

사고싶은 책은 많은데 이리도 진도가 안나가서야 언제 또 사나… 걱정이다.

아무튼, 예전에 웹개발 잠깐 맛보기로 배울때 html, JavaScript, css 이 세 가지를 기본으로 배웠다.

이때 이해했던 JavaScript는 그저 이벤트 처리용으로 사용되는 간단한 스크립트 언어였다. 문법도 Java랑 비슷하고, 사용법도 굉장히 간단했다. 그게 다인줄 알았다.

요즘 다시 JavaScript를 보면서 엄청난 오해를 했었다는 사실을 알게 되었다.

JavaScript는 굉장하다. 왜그런지는 직접 해보면 안다.

What is JavaScript?

나도 아직 잘 모른다. 하지만 함수형 프로그래밍이 가능하고, 객체지향 프로그래밍이 가능하다는 것이다. 그렇다고 해서 완전한 함수형 언어는 아니다.

그리고, 가장 중요한 점은 JavaScript는 프로토타입 기반의 언어라는 점이다. 이 프로토타입을 이용해서 객체의 상속과 같은 기능을 구현할 수 있다.

간단하게 맛만 보자면

1
2
3
4
5
6
7
var object = (function() {
function F() {};
return function(o) {
F.prototype = o;
return new F();
};
})();

위 소스코드는 무엇을 하는 것일까? 결론부터 말하자면 o 라는 객체를 상속받는 새로운 객체를 생성하는 코드이다. 정말?

지금은 ES6 (ECMAScript 6)부터 class 문법을 제공하므로 위와 같이 상속받지 않고, OOP-style의 extends 키워드를 통해 간단하게 상속을 구현할 수 있다.

하지만 자바스크립트를 제대로 공부하려면 위와같이 prototype을 이용한 상속도 알아야 할 것이다.

아무튼, 앞으로도 계속 공부해야겠다.





ps. 책을 새로 또 샀다… 자바스크립트 완벽 가이드.

앞으로의 자바스크립트 포스팅은 이 책을 공부한 내용의 정리로 진행될 예정이다.