전체 글

전체 글

    [JavaScript] let, const 키워드와 블록 레벨 스코프

    JavaScript Deep Dive 3주차 스터디 1. var 키워드 변수의 문제점 es5까지 자바스크립트의 변수선언은 var 키워드만 존재했고, 이는 다양한 문제점을 가지고 있어 이를 개선한 let, const 키워드가 es6부터 등장했다. 변수 중복 선언 허용 var 키워드로 선언한 변수는 중복선언이 가능하다. var x = 1; var x = 100; console.log(x); // 100 var 키워드로 선언한 변수는 중복 선언하면, 초기화문의 유무에 따라 다르게 동작하는데 초기화문이 존재하는 경우 var키워드가 중복되지 않은 것처럼 동작하고 초기화문이 없는 변수 선언문은 무시된다. 함수 레벨 스코프 var 키워드는 오로지 함수의 코드 블록만을 지역 스코프로 인정한다. 따라서 외부에서 var ..

    [JavaScript] 스코프

    스코프란? 모든 식별자(변수 이름, 함수 이름, 클래스 이름등)는 자신이 선언된 위치에 의해 다른 코드가 식별자 자신을 참조 할 수 있는 유효 범위가 결정되고, 이를 스코프라고 한다. 스코프의 종류 스코프는 지역 스코프와 전역 스코프로 나뉘는데, 지역이란 함수 몸체 내부를 말한다. 전역스코프를 가지는 전역 변수는 어디서든지 참조 할 수 있다. 지역 스코프의 경우 자신의 지역 스코프와 하위 지역 스코프에서 유효하다. 스코프 체인 함수는 중첩되어 계층적인 구조를 가질 수 있고 이에 따라 스코프가 계층적으로 연결된 것을 스코프 체인이라고 한다. 변수를 참조할 때 자바스크립트 엔진은 스코프 체인을 통해 변수를 참조하는 코드의 스코프에서 시작하여 상위 스코프 방향으로 이동하며 선언된 변수를 검색한다. 스코프 체인..

    [JavaScript] 객체 리터럴

    객체란? 자바스크립트에서 원시값을 제외한 모든 값이 객체이다. 원시값은 변경이 불가한(immutable value) 값이지만 객체는 변경 가능한(mutable value)이다. 객체는 0개 이상의 프로퍼티로 구성된 집합이며, 프로퍼티는 키(key)와 값(value)로 구성되어있다. 객체 리터럴은 {...} 중괄호 내에 0개 이상의 프로퍼티를 정의한 것이다. 프로퍼티 프로퍼티는 키와 값으로 ( key : value) 형태로 이루어지는데 키는 식별자 네이밍 규칙을 따르지 않을 경우 반드시 따옴표를 사용해야 한다. 객체의 프로퍼티의 키값이 중복 선언되면, 나중에 선언된 것으로 먼저 선언한 프로퍼티를 덮어쓴다. 프로퍼티의 값에는 함수도 올 수 있는데 객체의 프로퍼티에 선언된 함수를 자바스크립트에서 메서드라고 부..