제어문

    if..else문 조건식의 평과 결과가 불리언 값이 아니면 불리언 값으로 강제 변환되어 논리적 참, 거짓을 구별한다. switch 문 switch (표현식) { case 표현식1: switch 문의 표현식과 표현식1이 일치하면 실행될 문; break; case 표현식2: switch 문의 표현식과 표현식2가 일치하면 실행될 문; break; default: switch 문의 표현식과 일치하는 표현식을 갖는 case 문이 없을 때 실행될 문; } while 문 while문의 조건식 평과 결과가 불리언 값이 아니면 불리언 값으로 강제 변환된다. 레이블 문(label statement)이란 식별자가 붙은 문을 말한다. // foo라는 레이블 식별자가 붙은 레이블 문 foo: console.log('foo');..

    데이터 타입

    - Number 자바스크립트는 하나의 숫자 타입만 존재한다. (int, long long 이런거 없음) 모든 수를 실수로 처리한다. - string 문자열은 0개 이상의 16bit 유니코드 문자(UTF-16) 들의 집합으로 대부분의 전세계의 문자를 표현할 수 있다. 문자열은 작은 따옴표 또는 큰 따옴표 안에 텍스트를 넣어 생성한다. 가장 일반적인 표기법은 작은 따옴표를 사용하는 것이다. 자바스크립트의 문자열은 원시 타입이며 변경 불가능하다. 이것은 한 번 문자열이 생성되면, 그 문자열을 변경할 수 없다는 것을 의미한다. var str = 'Hello'; str = 'world'; 이때 문자열 'Hello'와 'world'는 모두 메모리에 존재하고 있다. 변수 str은 문자열 'Hello'를 가리키고 있다..

    기본 문법

    1. 변수 변수(Variable)는 값(value)을 저장(할당)하고 그 저장된 값을 참조하기 위해 사용한다. 한 번 쓰고 버리는 값이 아닌 유지(캐싱)할 필요가 있는 값은 변수에 담아 사용한다. 또한 변수 이름을 통해 값의 의미를 명확히 할 수 있어 코드의 가독성이 좋아진다. 변수는 위치(주소)를 저장하는 저장소이다. 위치란 메모리상의 주소(address)를 의미한다. 즉, 변수란 메모리 주소(Memory address)에 접근하기 위해 사람이 이해할 수 있는 언어로 지정한 식별자(identifier)이다. 변수를 선언할 때 var, let, const 키워드를 사용할 수 있다. var, let, const 차이점 JavaScript에서 변수 선언 방식인 `var, let, const` 의 차이점에 대..

    브라우저 동작 원리

    Node.js의 등장으로 자바스크립트는 웹브라우저를 벗어나 서버 사이드 애플리케이션 개발에서도 상요되는 범용 개발 언어가 되었다. 하지만 자바스크립트가 가장 많이 사용되는 문야는 역시 웹브라우저 환경에서 동작하는 웹 페이지/애플리케이션이다. 브라우저의 핵심 기능은 사용자가 참고하고자 하는 웹페이지를 서버에 요청(Request)하고 응답(Response)을 받아 브라우저에 표시하는 것이다. 브라우저는 서버로부터 HTML, CSS, Javascript, 이미지 파일 등을 응답받는다. HTML, CSS 파일은 렌더링 엔진의 HTML 파서와 CSS 파서에 의해 파싱(Parsing)되어 DOM, CSSOM 트리로 변환되고 렌더 트리로 결합된다. 이렇게 생성된 렌더 트리를 기반으로 브라우저는 웹페이지를 표시한다. ..

    요소의 위치 정의

    Position 프로퍼티 position 프로퍼티는 요소의 위치를 정의한다. top, bottom, left, right 프로퍼티와 함께 사용하여 위치를 지정한다. 1.1static (기본위치) static은 position 프로퍼티의 기본값으로 position 프로퍼티를 지정하지 않았을 때와 같다. 기본적인 요소의 배치 순서에 따라 위에서 아래로, 왼쪽에서 오른쪽으로 순서에 따라 배치되며 부모 요소 내에 자식 요소로서 존재할 때는 부모 요소의 위치를 기준으로 배치된다. 기본적으로 이 값을 지정할 일은 없겠지만 이미 설정된 position을 무력화하기 위해 사용될 수 있다. 좌표 프로퍼티 (top, bottom, left, right)를 같이 사용할 수 없으며 사용할 경우에는 무시된다. static bo..

    3. JS시작을 위한 준비

    모든 브라우저는 자바스크립트를 해석하고 실행할 수 있는 자바스크립트 엔진을 내장하고 있다. 브라우저뿐만 아니라 Node.js도 자바스크립트 엔진을 내장하고 있다. 따라서 자바스크립트는 브라우저와 Node.js 환경에서 실행할 수 있다. 기본적으로 브라우저에서 동작하는 코드는 Node.js 환경에서도 동작한다. 그런데 브라우저와 Node.js는 존재 목적이 다르다. 브라우저는 HTML, CSS, 자바스크립트를 실행하여 웹 페이지를 화면에 렌더링하는 것이 주된 목적이지만, Node.js는 서버 개발 환경을 제공하는 것이 주된 목적이다. 따라서 브라우저와 Node.js 모두 자바스크립트의 코어인 ECMAscript를 실행할 수 있지만 브라우저와 Node.js 에서 ECMAscript 이외에 추가적으로 제공하는..

    2. 자바스크립트?

    ES1 1997 초판 ES2 1998 ISO/IEC 16262 국제 표준과 동일한 규격을 적용 ES3 1999 정규 표현식, try…catch 예외 처리 ES5 2009 HTML5와 함께 출현한 표준안. JSON, strict mode, 접근자 프로퍼티(getter, setter), 향상된 배열 조작 기능(forEach, map, filter, reduce, some, every) ES6 (ECMAScript 2015) 2015 let, const, class, 화살표 함수, 템플릿 리터럴, 디스트럭처링 할당, spread 문법, rest 파라미터, Symbol, Promise, Map/Set, iterator/generator, module import/export ES7 (ECMAScript 2016..

    1. 시작

    프로그래밍 언어 직접 기계어로 명령을 전달하는 것을 대신할 가장 유용한 대안은 인간이 이해할 수 있는 약속된 구문(syntax, 문법)으로 구성된 "프로그래미 언어(Programming Language)"를 사용하여 프로그램을 작성한 후, 그것을 컴퓨터가 이해할 수 있는 기계어로 변환하여 주는 일종의 번역기를 이용하는 것이다. 이 일종의 번역기를 컴파일러(compiler) 혹은 인터프리터(interpreter)라고 한다. console.log('hello world'); hello world를 출력하는 JS 코드 프로그래밍 언어는 syntax(구문)와 semantics(의미)의 조합으로 표현된다. 자바스크립트의 변수에는 어떠한 타입의 값이라도 할당할 수 있다. 그러나 의미적으로 옳은 할당을 하도록 하자...