본문 바로가기

모딥다5

[모던 자바스크립트 Deep Dive][14] 전역 변수의 문제점 변수의 생명 주기지역 변수의 생명 주기지역 변수의 생명주기는 함수의 생명 주기와 일치한다.변수 선언은 선언문이 어디에 있든 상관없이 가장 먼저 실행된다. 즉, 런타임 이전 단계에서 엔진에 의해 먼저 실행된다.1. 엔진에 의해 x 변수 선언 및 초기화(undefined)2. 함수 구성문 순차적으로 실행되기 시작3. 변수 할당문이 실행되면 x변수에 값 할당4. 함수가 종료하면 x 변수도 소멸되어 생명 주기 종료 전역 변수의 생명 주기함수와 달리 전역 코드는 명시적인 호출 없이 실행된다.var 키워드로 선언한 전역 변수의 생명 주기는 전역 객체의 생명 주기와 일치한다. 전역 변수의 문제점1. 전역 변수 선언시 모든 코드가 전역 변수를 참조하고 변경할 수 있는 암묵적 결합을 허용 하는 것이다.  -> 유효 범위.. 2024. 8. 7.
[모던 자바스크립트 Deep Dive][13] 스코프 스코프란?스코프: 식별자가 유효한 범위식별자 결정 : 엔진이 이름이 같은 두 개의 변수 중에서 어떤 변수를 참조할 것인지 결정하는 것var var1 = 1; // 코드의 가장 바깥 영역에서 선언한 변수if (true) { var var2 = 2; // 코드 블록 내에서 선언한 변수 if (true) { var var3 = 3; // 중첩된 코드 블록 내에서 선언한 변수 }}function foo() { var var4 = 4; // 함수 내에서 선언한 변수 function bar() { var var5 = 5; // 중첩된 함수 내에서 선언한 변수 }}console.log(var1); // 1console.log(var2); // 2console.log(var3); // 3conso.. 2024. 8. 6.
[모던 자바스크립트 Deep Dive][11] 원시 값과 객체의 비교 원시 값변경 불가능한 값원시 값 : 변경 불가능한 값 (read only)따라서 원시 값을 할당한 변수에 새로운 원시 값을 재할당하면 새로운 메모리 공간을 확보하여 재할당한 원시 값을 저장한 후, 변수는 새롭게 재할당한 원시 값을 가리킨다.변수가 참조하던 메모리 공간의 주소가 바뀐다.이것을 불변성 이라고 한다.  문자열과 불변성 원시 값을 저장하려면 먼저 확보해야 하는 메모리 공간의 크기를 결정해야 한다. 이 때 자바스크립트의 문자열은 다른 원시 값과 비교할 때 독특한 특징이 있다.숫자 값은 1도, 1000000도 동일한 8바이트가 필요하지만문자열(String 객체)의 경우 몇 개의 문자로 이루어졌느냐에 따라 필요한 메모리 공간의 크기가 결정된다.var str = 'string';// 문자열은 유사 배열.. 2024. 5. 21.
[모던 자바스크립트 Deep Dive][08] 제어문 제어문은 조건에 따라 코드 블록을 실행(조건문)하거나 반복 실행(반복문)할 때 사용한다. 블록문블록문은 0개 이상의 문을 중괄호로 묶은 것으로, 코드 블록 또는 블록이라고 부르기도 한다.자바스크립트는 블록문을 하나의 실행 단위로 취급한다.블록문의 끝에는 세미콜론을 붙이지 않는다.  조건문조건문은 주어진 조건식의 평과 결과에 따라 코드 블록의 실행을 결정한다.조건식은 불리언 값으로 평가될 수 있는 표현식이다.if else 문과 switch 문으로 두 가지 조건문을 제공한다. if else 문if else 문은 주어진 조건식의 평가 결과, 즉 논리적 참 또는 거짓에 따라 실행할 코드 블록을 결정한다.조건식의 평가 결과가 true 일 경우 if문의 코드 블록이 실행되고, false일 경우 else 문의 코드 .. 2024. 5. 3.