전체 글127 자바스크립트 개발자가 알아야할 33가지 개념[#06. 함수 범위(Function Scope), 블럭 범위(Block Scope), 렉시컬(lexical) 범위] 스코프 (Scope) 자바스크립트에서 스코프는 어떤 변수에 접근할 수 있는지를 정의한다. 일반적으로 2가지의 스코프가 존재한다. 전역 스코프와 지역 스코프이다. 전역 스코프(Global Scope) 만일 변수가 모든 함수에 속하지 않고 {}괄호안에 들어있지도 않다면 우리는 그 변수를 전역 변수라고 한다. 전역 변수를 선언하면, 자바스크립트 코드 어디에서든 불러 올 수 있다. 심지어 함수 내부에서 도 사용 가능하다. 전역변수의 사용은 조심할 필요가 있다. 왜냐하면 두개 혹은 그 이상의 변수들이 같은 이름을 가지게 되어 네이밍 충돌(naming cillision)이 발생할 확률이 있기 때문이다. 만일 우리가 const 또는 let 키워드로 같은 이름의 변수를 선언하게 된다면 우리는 에러를 보게 된다. 만일 .. 2022. 5. 11. 자바스크립트 개발자가 알아야할 33가지 개념(#05. == vs === and Typeof) 자바스크립트는 눈으로 보기엔 비슷하지만 사실 매우 다른 동등 비교연산자 두개가 있다. 자바스크립트 사용자라면 누구나 == 과 ===을 이용하여 어떤 값이 동일한지 비교할 수 있다. 이제부터 차이점을 알아보자 === 동등 연산자 자바스크립트에서 === 연산을 사용할 때, 엄격한 동등성을 비교한다. 엄격한 동등성의 의미는 타입과 값이 모두 같이야 한다는 뜻이다. 예제를 살펴보면, 1. 둘 다 숫자라는 타입이 같고 값도 같다. 2. 둘 다 문자열이라는 타입이 같고 값도 같다 3. 둘 다 문자열이라는 타입은 같지만 값은 다르다. 4. 둘 다 불리언(Boolean)이라는 타입이 같고 값도 같다. ==동등 연산자 자바스크립트에서 == 연산자를 쓰는 목적은 느슨한 동등 비교를 위함이다. == 연산자도 강제 형변환(t.. 2022. 5. 10. 자바스크립트 개발자가 알아야할 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. 이전 1 ··· 18 19 20 21 22 다음