개발 공부/Modern JS Deep Dive
[CH.08] 제어문 control flow statement
8.1 블록문 block statement⇒ 0개 이상의 문을 중괄호로 묶은 것으로, 코드 블록이라고도 함JS는 블록문을 하나의 실행 단위로 취급함블록문 끝에는 세미콜론을 붙이지 않// 블록문{ var foo = 10;}// 제어문var x = 1;if (x 8.2 조건문 conditional statement⇒ 주어진 조건식(boolean값으로 평가될 수 있는 표현식)의 평가 결과에 따라 코드 블록의 실행을 결정함if else문// else if 문은 여러 번 사용 가능var num = 2;var kind;// if 문if (num > 0) { kind = '양수'; // 음수를 구별할 수 없다}console.log(kind); // 양수// if...else 문if (num > 0) { kind..
[CH.07] 연산자 operators
7.1 산술 연산자 arithmetic operator⇒ 수학적 계산을 수행해 새로운 숫자 값을 만듬산술 연산이 불가는하면 NaN을 반환함이항 산술 연산자 binary arithmetic operator⇒ 2개의 피연산자를 산술 연산해 숫자 값을 만듬모든 이항 산술 연산자는 피연산자의 값을 변경하는 부수 효과 side effect가 없음여기서 side effect의 의미 → 피연산자의 값이 바뀌는 경우 X, 새로운 값을 만듬이상 산술 연산자 의미 부수효과+뎟셈X-뺄셈X*곱셈X/나눗셈X%나머지X단항 산술 연산자 unary arithmetic operator⇒ 1개의 피연산자를 산술 연산하여 숫자 값을 만듬단향 산술 연산자 의미 부수효과++증가O--감소O+효과 X 단, 숫자타입이 아닌 피연산자에 사용하면 피..
[CH.06] 데이터 타입 data type
자바스크립트에서는 7개의 데이터 타입이 존재함구분 데이터 타입 설명원시타입숫자(number)타입숫자. 정수와 실수 구분 없이 하나의 숫자타입만 존재 문자열(string)타입문자열 불리언(boolean)타입논리적 참(true)과 거짓(false) undefined 타입var 키워드로 선언된 변수에 암묵적으로 할당되는 값 null 타입값이 없다는 것을 의도적으로 명시할 때 사용하는 값 심벌(symbol) 타입ES6에서 추가된 7번째 타입객체타입 원시 타입을 제외한 모든 것6.1 숫자 타입 number type하나의 숫자 타입만 존재한다. 모든 수는 실수로 처리되기 때문에 정수로 표시되는 수끼리 나누더라도 실수가 나올 수 있는 이유다.// 숫자 타입은 모두 실수로 처리된다.console.log(1 === 1...
[CH.05] 표현식과 문 expression & statement
5.1 값 value값 value 는 표현식 expression 이 평가 evaluate 되어 생성된 결과다.평가 evaluate 는 식 expression 을 해석하여 값을 생성하거나 참조하는 과정을 말한다.예를 들어 var sum = 10 + 20;이 있을 때, sum에 할당되는 것은 10 + 20 식 자체가 아니라 평가 결과인 30이다.5.2 리터럴 literal리터럴 literal 은 사람이 이해할 수 있는 문자나 특수 기호를 사용해 값을 생성하는 표기법이다.자바스크립트에서 { } 뒤에는 세미콜론을 붙이지 않는다. 이는 코드 블록이 자체 종결성을 갖고 있기 때문이다.5.3 표현식 expression표현식 expression 은 값으로 평가될 수 있는 문이다.표현식이 평가되면 새로운 값을 생성하거나..
[CH.04] 변수 Variable
4.1 변수란? 변수의 필요성변수 variable프로그래밍 언어에서 변수 variable는 데이터를 관리하기 위한 핵심 개념이다.예를 들어, 10 + 20이라는 간단한 식을 실행할 때, 컴퓨터는 메모리에 10, 20, 그리고 연산 결과인 30을 저장하게 된다.하지만 여기서 문제는, 결과로 나온 30을 재사용하기가 쉽지 않다는 문제점이 있다. 메모리 주소에 직접 접근해야만 값을 다시 사용할 수 있지만 JS는 개발자가 임의로 메모리 주소를 직접 다루는 것을 허용하지 않는다.직접 메모리 제어가 위험한 이유메모리 주소는 실행할 때마다 달라질 수 있고(OS나 런타임 환경이 임의로 배정).특정 메모리 주소를 직접 건드리면, 의도치 않은 영역의 데이터를 덮어쓰거나 읽어 오류를 일으킬 가능성이 큼.결국 JS에서는 직접..