본문 바로가기

자바스크립트 33가지 컨셉12

자바스크립트 개발자가 알아야할 33가지 개념(#04. 암묵적 타입 변환 (Implicit coercion)) 자바스크립트의 암묵적 타입 변환(implicit coercion)은 간단하게 말하자면 예상치 못한 타입을 받았을 때 예상 가능한 타입으로 바꿔준다고 생각하면 된다. 그로 인해 사용자는 숫자 값을 넘겨야 하는 곳에 문자열을 넣을 수도 있고 문자열을 넣어야 하는 곳에 객체를 넘길 수도 있다. 이러한 일이 발생했을 때 자바스크립트 엔진은 사용자가 잘못 넣은 타입을 올바른 타입으로 변환하려고 시도한다. 이것은 자바스크립트의 주요한 기능 중 하나이며 가장 피해야할 기능이다. 숫자 표현식에서 숫자가 아닌 값 문자열 사용자가 숫자 표현식에서 문자열 (-, *, /, %을 포함한 문자열)을 피연산자로 넘겼을 때마다 숫자의 암묵적 타입변환 프로세스는 문자열을 인자로 자바스크립트 내부에 내장된 Number함수를 불러오는 .. 2022. 5. 10.
자바스크립트 개발자가 알아야할 33가지 개념(#03. 값(value) vs 참조(reference)) 자바스크립트는 값에 의한 전달(passed by value)이 일어나는 5가지의 데이터타입(Boolean, Null, Undefined, String, Number)을 가지고 있다. 우리는 이러한 데이터 타입을 원시 타입(Primitive Types)이라고 부른다. 또 자바스크립트는 참조에 의한 전달(passed by reference)이 일어나는 3가지의 데이터 타입(Array, Function, Object)도 가지고 있다. 이 3가지는 크게 보면 전부 객체(Object)로 볼 수 있다. Pass by value 원시 타입은 값으로 전달된다. 즉, 값이 복사되어 전달된다. 원시 타입은 값이 한번 정해지면 변경 할 수 없다. 또한, 이들 값은 런타임(변수 할당 시점)에 메모리의 스택 영역(Stack S.. 2022. 5. 9.
자바스크립트 개발자가 알아야할 33가지 개념(#02. Primitive Type) Primitive Type (원시 값) ECMAScript 표준은 다음과 같은 7개의 자료형을 정의한다. 기본 자료형(primitive)인 여섯가지 데이터 타입 Boolean Null Undefined Number String Symbol (ES6에서 추가) 오브젝트를 제외한 모든 값은 변경 불가능한 값(immutable value)이다. Boolean type 불리언(boolean) 타입의 값은 논리적 참, 거짓을 나타내는 true와 false 뿐이다. 불리언 타입의 값은 참과 거짓으로 구분되는 조건에 의해 프로그램의 흐름을 제어하는 조건문에서 자주 사용한다. 비어있는 문자열과 null, undefined, 숫자 0은 false로 간주된다. Null null타입의 값은 null이 유일하다. 자바스크립트.. 2022. 5. 8.
자바스크립트 개발자가 알아야할 33가지 개념(#01. 콜스택) 프론트엔드 개발자라면 자바스크립트를 끝임없이 공부해야한다 생각한다. 자바스크립트를 심도 있게 이해하기 위해 자바스크립트 개발자가 알아야할 33가지 개념(https://github.com/yjs03057/33-js-concepts)의 항목들을 알아보고 블로그 글을 정리하며 공부하기로 했다. 자바스크립트 엔진 가장 대중적인 자바스크립트의 엔진은 구글의 V8엔진이다. V8 엔진은 크롬과 노드 안에서 동작한다. 자바스크립트 엔진은 다음과 같이 두 가지 주요 구성 요소로 이루어져 있다. 메모리 힙(Memory Heap) - 메모리 할당이 일어나는 곳 힙(Heap) - 구조화되지 않은 넓은 메모리 영역 객체(변수, 함수 등)들이 담긴다. 콜 스택(Call Stack) - 실행될 코드의 한 줄 단위로 할당되어 실행이.. 2022. 5. 7.