스터디/모던자바스크립트DeepDive(5)
-
[Javascript] 14장 전역변수의 문제점
14.1 변수의 생명 주기 14.1.1 지역 변수의 생명 주기 전역 변수의 생명 주기는 애플리케이션의 생명 주기와 같지만, 함수 내부에서 선언된 지역 변수는 함수가 호출되면 생성되고 함수가 종료하면 소멸. 변수 선언은 코드가 한 줄씩 순차적르호 실행되는 시점인 런타임에 실행되는 것이 아니라 럼타임 이전 단계에서 자바스크립트 엔진에 의해 먼저 실행됨. 그런데, 엄밀히 말하면 위의 설명은 전역 변수에 한정된 얘기이고, 함수 내부에서 선언한 변수는 함수가 호출된 직후에 함수 몸체의 코드가 한 줄씩 순차적으로 실행되기 이전에 자바스크립트 엔진에 의해 먼저 실행됨. 즉, 지역 변수의 생명 주기는 함수의 생명 주기와 일치함. 호이스팅은 스코프를 단위로 동작하기 때문에, 전역 변수의 호이스팅은 전역 변수의 선언이 전..
2021.04.16 -
[Javascript] 13장 스코프
13.1 스코프란? - 모든 식별자(변수 이름, 함수 이름, 클래스 이름 등)는 자신이 선언된 위치에 의해 다른 코드가 식별자 자신을 참조할 수 있는 유효 범위가 결정됨. 이를 스코프라 하는데, 스코프는 식별자가 유효한 범위를 의미함. - 스코프를 자바스크립트 엔진이 식별자를 검색할 때 사용되는 규칙이라고도 할 수 있음. - 스코프를 네임스페이스라고도 할 수 있음. * var 키워드로 선언된 변수는 같은 스코프 내에서 중복 선언이 허용됨, 이는 의도치 않게 변수값이 재할당되어 변경되는부작용을 발생시킴. function foo(){ var x=1; //var 키워드로 선언된 변수는 같은 스코프 내에서 중복 선언을 허용함 //아래 변수 선언문은 자바스크립트 엔진에 의해 var 키워드가 없는 것처럼 동작함 v..
2021.04.14 -
[Javascript] 12장_함수
12.1 함수란? 함수는 일련의 과정을 문(statement)으로 구현하고 코드 블록으로 감싸서 하나의 실행 단위로 정의한 것. 프로그래밍 언어의 함수도 입력을 받아서 출력을 내보내는데, 함수 내부로 입력을 전달받는 변수를 매개변수(parameter), 입력을 인수(argument), 출력을 반환값(return value)라고 함. 12.2 함수를 사용하는 이유 함수는 몇 번이든 호출할 수 있으므로 코드의 재사용이라는 측면에서 매우 유용함. 코드의 중복을 억제하고 재사용성을 높여 유지보수의 편의성을 높이고 실수를 줄여 코드의 신뢰성을 높이는 효과가 있음. 함수는 객체 타입의 값이기 때문에 이름(식별자)을 붙일 수 있는데 적절한 함수이름은 코드의 가독성을 향상시킴. 12.3 함수 리터럴 자바스크립트의 함수..
2021.04.08 -
[Javascript] 11장_원시 값과 객체의 비교
7가지 데이터 타입(숫자, 문자열, 불리언, null, undefined, 심벌, 객체 타입)은 크게 원시 타입(primitive type)과 객체 타입(object/reference type)으로 구분할 수 있음. 원시 타입(primitive type) 객체 타입(object/reference type) 원시 타입의 값, 즉 원시 값은 변경 불가능한 값(immutable value) 객체(참조) 타입의 값, 즉 객체는 변경 가능한 값(mutable type) 원시 값을 변수에 할당하면 변수(확보된 메모리 공간)에는 실제 값이 저장됨. 객체를 변수에 할당하면 변수(확보된 메모리 공간)에는 참조 값이 저장됨 원시 값을 갖는 변수를 다른 변수에 할당하면 원본의 원시 값이 복사되어 전달되는데, 이를 값에 의한..
2021.04.07 -
[Javascript] 10장_객체리터럴
10.1 객체란? - 자바스트립트는 객체 기반의 프로그래밍 언어.(원시 값을 제외한 나머지 값(함수, 배열, 정규 표현식 등)은 모두 객체) - 원시 타입은 단 하나의 값만 나타내지만 객체 타입은 다양한 타입의 값(원시 값 또는 다른 객체)을 하나의 단위로 구성한 복합적인 자료구조. - 원시타입의 값은 변경 불가능한 값(immutable value) / 객체 타입의 값은 변경 가능한 값(mutable value). - 객체는 0개 이상의 프로퍼티로 구성된 집합이며, 프로퍼티는 키와 값으로 구성됨. - 자바스크립트에서 사용할 수 있는 모든 값은 프로퍼티 값이 될 수 있는데, 자바스크립트 함수는 '일급 객체'이므로 값으로 취급할 수 있기 때문에 함수도 프로퍼티 값으로 사용할 수 있음(프로퍼티 값이 함수일 경..
2021.04.05