Javascript/모던 자바스크립트 Deep Dive 5

[모던 자바스크립트 Deep Dive] 09. 타입 변환과 단축 평가

9.1 타입 변환이란? 기존 원시 값을 사용해 다른 타입의 새로운 원시 값을 생성하는 것 원시 값은 변경 불가능한 값(Immutable value)이므로 변경할 수 없다. 9.2 암묵적 타입 변환(implicit coercion) = 타입 강제 변환(type coercion) 자바스크립트 엔진에 의해 암묵적으로 타입이 자동 변환되는 것 문자열, 숫자, 불리언과 같은 원시 타입 중 하나로 타입을 자동 변환한다. 9.2.1 문자열 타입으로 변환 +연산자 피연산자 중 하나 이상이 문자열일 때 문자열 연결 연산자로 동작한다. 문자열 연결 연산자의 피연산자 중 문자열 타입이 아닌 피연산자를 문자열 타입으로 암묵적 타입 변환한다. // 숫자 타입 0 + '' // -> "0" -0 + '' // -> "0" 1 +..

[모던 자바스크립트 Deep Dive] 07. 연산자

연산자 하나 이상의 표현식을 대상으로 산술, 할당, 비교, 논리, 타입, 지수 연산 등을 수행해 하나의 값을 만듦 값으로 평가된 피연산자를 연산해 새로운 값을 만듦 피연산자 연산의 대상 값으로 평가될 수 있는 표현식 연산의 대상이 되어야 하므로 값으로 평가할 수 있어야 함 7.1 산술 연산자 피연산자를 대상으로 수학적 계산을 수행해 새로운 숫자 값을 만듦. 산술 연산이 불가능한 경우 NaN 반환 7.1.1 이항 산술 연산자 2개의 피연산자를 산술 연산하여 숫자 값을 만듦 피연산자의 값을 변경하는 부수 효과가 없다. => 언제나 새로운 값을 만듦 이항 산술 연산자 의미 + 덧셈 - 뺄셈 * 곱셈 / 나눗셈 % 나머지 7.1.2 단항 산술 연산자 1개의 피연산자를 산술하여 숫자 값을 만듦 단항 산술 연산자 ..

[모던 자바스크립트 Deep Dive] 05. 표현식과 문

값 값은 식(표현식)이 평가되어 생성된 결과를 말한다. var sum = 10 + 20; //변수에는 10 + 20이 평가되어 생성된 숫자 값 30이 할당된다. sum 변수에 할당되는 것인 10+20이 아닌 30으로 10+20은 할당 이전에 평가되어 값을 생성해야 한다. 값을 생성하는 기본적인 방법은 리터럴을 사용하는 것이다. 리터럴 리터럴은 사람이 이해할 수 있는 문자 또는 약속된 기호를 사용해 값을 생성하는 표기법이다. 자바스크립트 엔진은 코드가 실행되는 런타임에 리터럴을 평가해 값을 생성한다. 표현식 값으로 평가될 수 있는 문이다. 표현식이 평가되면 새로운 값을 생성하거나 기존 값을 참조한다. var score = 100; 위 예제의 100은 리터럴이다. 리터럴 100은 자바스크립트 엔진에 의해 평..

[모던 자바스크립트 Deep Dive] 04. 변수

변수 하나의 값을 저장하기 위한 메모리 공간 자체 또는 그 메모리 공간을 식별하기 위해 붙인 이름이다. 메모리란? 메모리는 데이터를 저장할 수 있는 메모리 셀의 집합체이다. 메모리 셀 하나의 크기는 1바이트(8비트)이며 컴퓨터는 1바이트 단위로 데이터를 저장하거나 읽어 들인다. 컴파일러 또는 인터프리터에 의해 값이 저장된 메모리 공간의 주소로 치환되어 실행된다. => 개발자는 직접 메모리 주소를 통해 값을 저장, 참조할 필요 없이 변수를 통해 안전하게 값에 접근할 수 있다. 변수 선언 변수를 생성하는 것으로 값을 저장하기 위한 메모리 공간을 확보하고 변수 이름과 확보된 메모리 공간의 주소를 연결해서 값을 저장할 수 있게 준비하는 것이다. 다음의 2단계에 거쳐 수행된다. 선언 단계 : 변수 이름을 등록해서..

[모던 자바스크립트 Deep Dive] 06. 데이터 타입

데이터 타입(줄여서 타입)은 값의 종류를 말한다. 자바스크립트의 모든 값은 타입을 갖는다. 총 7개의 타입이 있다. 구분 데이터 타입 설명 원시 타입 숫자 타입 64비트 부동 소수점으료 표기하는 하나의 타입만 존재 문자열 타입 문자열 변경불가능한 값(immutable) 불리언 타입 논리적 참 또는 거짓 undefined 타입 var 키워드로 선언된 변수에 암묵적으로 할당되는 값 null 타입 값이 없다는 것을 의도적으로 명시할 대 사용하는 값 심벌 타입 ES6에서 추가된 7번째 타입 객체 타입 객체, 함수, 배열 등 1. 숫자 타입 모든 숫자는 배정밀도 64비트 부동소수점 형식의 2진수로 저장된다. 즉, 모든 수를 실수로 처리하며, 정수를 위한 데이터 타입이 별도로 존재하지 않는다. 정수로 표시되는 수끼..