1995년, 웹 브라우저의 시장을 지배하던 Netscape communications는 웹 페이지의 보조적인 기능을 수행하기 위해 웹 브라우저에서 동작하는 경량 프로그래밍 언어인 JavaScript를 도입한다.이후 1996년, Microsoft는 자바스크립트의 파생 버
JavaScript는 브라우저 환경 또는 Node.js 환경에서 실행할 수 있다. 그러나 한 가지 주의할 점은, 브라우저와 Node.js는 용도가 다름을 이해해야 한다.브라우저는 HTML, CSS, JS를 실행해 웹 페이지를 브라우저 화면에 렌더링하는 것이 주된 목적이
변수는 프로그래밍 언어에서 값을 저장하고 참조하는 매커니즘으로, 하나의 값을 저장하기 위해 확보한 메모리 공간을 식별하기 위해 붙인 이름이다. 사람과 컴퓨터는 위 식을 어떻게 계산할까? 사람은 '10'과 '20', '+'라는 기호를 알고 있으며, '10'과 '20'
값은 Expression(표현식)을 해석하여 생성된 결과를 말한다.값은 다양한 방법으로 생성할 수 있다.리터럴(literal) 은 사람이 이해할 수 있는 문자인 알파벳, 숫자, 기호 등을 사용해 생성하는 표기법을 말한다. 리터럴은 정수, 문자열, 객체 리터럴 등의 다양
위의 코드에서, x 변수의 숫자 값을 바탕으로 새로운 문자열 '10' 값을 생성한다.JS 엔진은 표현식을 에러 없이 평가하기 위해 값을 암묵적으로 타입을 변환하여 새로운 타입의 값을 생성한다.이렇게 JS 엔진에 의해 드러나지 않게 타입이 자동 변환되기 때문에, 타입을
객체 리터럴에 대한 정의와 프로퍼티의 동적 생성 및 삭제, 그리고 ES6에서 추가된 확장 기능을 살펴보자.
primitive type과 object type간에 어떤 차이점이 있는지 알아보자.
함수의 정의 방식과 호이스팅 및 다양한 함수의 형태에 대해 알아보자.
스코프(scope)란 무엇인지 살펴보고, 함수 레벨 스코프와 렉시컬 스코프가 무엇인지 알아보자.
전역 변수의 무분별한 사용은 위험하다. 전역 변수의 문제점과 전역 변수의 사용을 억제할 수 있는 방법을 살펴보자.
var 키워드로 선언한 변수의 문제점과 ES6에서 도입된 let 과 const 키워드를 살펴보자.
생성자 함수를 사용해 객체를 생성하는 방법에 대해 알아보자.
일급 객체란 무엇인지 그리고 함수 객체의 프로퍼티에는 무엇이 있는지 살펴보자.
프로토타입이 무엇인지 알아보자.
Strict Mode의 적용 방법과 Strict Mode가 발생시키는 에러에 대해 살펴보자.
빌트인 객체와 빌트인 객체가 가지고 있는 프로퍼티와 메서드에 대해 살펴보자.
this 키워드란 무엇인지, 그리고 함수 호출 방식에 따라 this 바인딩이 어떻게 설정되는지 살펴보자.
실행 컨텍스트(execution context)가 무엇인지 알아보자.
클로저(Closures)란 무엇인지 알아보자.
ES6에 도입된 클래스에 대해 알아보자.
ES6에 추가된 화살표 함수와 Rest 파라미터, 매개변수 기본값에 대해 알아보자.
ES6에 도입된 심벌에 대해서 알아보자.
이터러블(iterable)과 이터레이터(iterator)에 대해 알아보고, 이터러블을 직접 만들어보자.
브라우저가 HTML, CSS, JS로 작성된 텍스트 문서를 파싱해서 렌더링하는 과정을 살펴보자.
DOM에 대해 알아보자.
이벤트에 대해 알아보자!
타이머 함수에 대해 알아보고, 타이머 함수를 가지고 디바운스(debounce)와 스로틀(throttle)을 만들어보자.
비동기(asynchronous) 동작방식에 대해 알아보자.
REST API에 대해 살펴보자.
ES6에 도입된 Promise에 대해 알아보자.
ES6에 도입된 제너레이터(generator)와 ES8에 도입된 async/await을 살펴보자.
Error 객체에 대해 알아보자.
모듈이란 무엇인지, 그리고 ES6 모듈에 대해 한 번 살펴보자.