본문 바로가기

Front-End/JavaScript18

Closure ✅클로저(Closure)란? 클로저는 자바스크립트 고유의 개념이 아니므로 ECMAScript 명세에 클로저의 정의가 등장하지 않는다. 클로저에 대해 MDN은 아래와 같이 정의하고 있다. “A closure is the combination of a function and the lexical environment within which that function was declared.” 클로저는 함수와 그 함수가 선언됐을 때의 렉시컬 환경(Lexical environment)과의 조합이다. 무슨 의미인지 잘 와 닿지 않는다. 위에서 중요한 키워드는 “함수가 선언됐을 때의 렉시컬 환경(Lexical environment)”이다. function outerFunc() { var x = 10; var inne.. 2021. 1. 8.
Scope ✅ Scope란? 변수에 접근할 수 있는 범위 무슨말인고 하니, 우리가 아는 변수는 어떠한 환경 내에서만 사용가능하다고 한다. 이때, 변수가 어디서부터 어디까지 유효한지를 판단하는 범위를 뜻하는 것이 scope이다. 자바스크립트는 기본적으로, 함수가 선언되는 동시(lexcical)에 자신만의 범위(scope)를 가진다고 한다. 선언이다 선언! 호출이 아니다. 전역 범위(Global scope)와 지역 범위(Local scope) 전역 범위 코드 어디에서든지 접근할 수 있다. 지역 범위 함수 코드 블록이 만든 스코프로 함수 자신과 하위 함수에서만 접근할 수 있다. 모든 변수는 Scope를 갖는다. 변수의 관점에서 Scope를 구분한다면 다음과 같다. 전역 변수(Global variable) 전역에서 선언된.. 2021. 1. 8.
원시 타입 VS 참조 타입 자바스크립트 자료형(데이터)은 크게 원시 타입(Primitive Type)과 참조 타입(Reference Type)으로 나눌 수 있다고 했다. 둘 다 변수를 선언하고 데이터를 변수에 할당할 수 있는데 무엇이 다른 것일까? 각각 특징을 알아보면 다음과 같다. 원시 타입 - 값을 그대로 저장 참조 타입 - 값을 주소로 저장하고, 출력시 주소와 일치하는 값을 출력 보다시피, 값의 저장형태가 다른데, 이는 변수에 할당하는 과정에서 차이가 발생한다. 어떠한 차이가 있는지 알아보자. 🖋 원시 타입(Primitive Type) 선언(declaration) let a; let b; 핟당(assignment) a = 1; b = 1; 재할당 b = 2; console.log(b) // 2 처음 a, b에 1이라는 원시 .. 2021. 1. 7.
자료형(Data Type) 변수는 '데이터를 저장하고 읽고 쓰고 할 수 있는 공간' 이라고 했다. 그렇다면 이 데이터에는 어떤 종류가 있을까? ✅ 자료형(Data type) 이란? 프로그램에서 다룰 수 있는 값(데이터)의 종류 자바스크립트에서는 여러 가지 형태의 타입을 미리 정의하여 제공하고 있으며, 이를 기본 타입이라고 한다. 자바스크립트의 기본 타입은 크게 원시 타입(Primitive Type)과 객체 / 참조 타입(Object / Reference Type)로 구분할 수 있다. 🖋 원시 타입(Primitive Type) 원시 타입의 값은 변경 불가능한 값(immutable value)이며 값을 그대로 저장한다. 종류 boolean null undefined number string symbol (ECMAScript 6 에 추.. 2021. 1. 7.
변수(Variable) ✅ 변수(Variable)란? 데이터를 저장하고 읽고 쓰고 할 수 있는 공간 데이터는 프로그래밍에서 기본이라고 한다. 즉, 어떠한 정보든지 전부 데이터다. 이러한 데이터를 처리하기 위해서 데이터를 저장하는 공간이 있어야 하는데, 이때 저장하는 공간을 변수라고 한다. 변수를 사용하는 법은 다음과 같다. 선언(Declaration)과 할당(Assignment) var 변수명; // 선언(Declaration) 변수명 = 데이터; // 할당(Assignment) let 변수명 = 데이터; // 선언과 할당을 동시에 가능! const 변수명 = 데이터; 선언(Declaration)이란? 저장소를 확보 자바스크립트 엔진(자바스크립트 코드를 해석하는 도구)에게 '이름은 변수명이라고 하고, 데이터 저장공간을 만들어놔.. 2021. 1. 7.
매개변수(parameter) vs 인자(argument) 공부할 때 은근히 헷갈렸던 매개변수와 인자에 대해 정리해보려고 한다. 더 이상 헷갈리지 말자! 매개변수(parameter) vs 인자(argument) function 함수이름(매개변수1, 매개변수2...) { 실행문; } 함수이름(인자1, 인자2, ...) 매개변수(parameter) 함수 선언에서 활용하기 위하여 사용하는 변수 인자(argument) 함수를 호출할 때 사용하는 것 즉 '전달인자' 2021. 1. 4.