전체 글 (104) 썸네일형 리스트형 <모던 자바스크립트 Deep Dive> 14장 전역 변수의 문제점 요약 14. 전역 변수의 문제점 1) 변수의 생명 주기 - 변수는 생성, 소멸되는 생명 주기(Life cycle)를 가짐 - "자신이 선언된 위치"에서 생성, 소멸되는데 따라서 전역 변수는 애플리케이션 생명 주기를 갖고, 지역 변수는 함수 생명 주기를 가짐 function foo() { var x = 'local'; console.log(x); // local return x; } foo(); console.log(x); // ReferenceError: x is not defined //지역 변수 x는 foo 함수가 호출되어 실행되는 동안에만 유효함 - 단, 지역 변수의 경우 해당 함수 스코프가 어딘가에서 계속 참조 중이라면 사라지지 않음 - 호이스팅이란 변수 선언이 스코프의 선두에 이루어지는 것을 뜻하며,.. <모던 자바스크립트 Deep Dive> 13장 스코프 요약 13. 스코프 1) 스코프(scope) - 모든 식별자(변수 이름, 함수 이름, 클래스 이름 등)는 자신이 선언된 위치에 의해 유효 범위가 결정됨 - 즉, 스코프는 식별자가 유효한 범위를 뜻함 - 자바스크립트 엔진은 식별자를 검색하여 어떤 식별자를 사용할지 결정할 때에 스코프를 이용함 - 일반적으로 컴퓨터에서 속한 폴더가 다르면 파일명이 같더라도 다르게 취급되는데, 스코프 또한 식별자 이름이 같더라도 스코프가 다르면 다르게 취급됨(스코프 = 네임스페이스) 2) 스코프의 종류 구분 설명 스코프 변수 전역 코드의 가장 바깥 영역 전역 스코프 전역 변수 지역 함수 몸체 내부 지역 스코프 지역 변수 - 전역 변수는 어디에서든지 참조 가능 - 지역 변수는 자신이 선언된 지역과 하위 지역(중첩 함수)에서만 참조 가.. <모던 자바스크립트 Deep Dive> 12.5~12.7장 함수 요약 5) 함수 호출 - 함수를 가리키는 식별자 + 함수 호출 연산자(0개 이상의 인수)로 호출 1. 매개변수와 인수 : 함수를 실행하기 위해 필요한 값을 외부에서 내부로 전달할 때 사용 - 인수 : 값으로 평가될 수 있는 표현식. 개수와 타입에 제한 없음 - 매개변수 : 함수 몸체 내부에서 변수와 동일. 함수 호출 시 변수와 마찬가지로 undefined로 초기화 후 인수가 할당됨 - 매개변수 > 인수일 경우 인수가 할당되지 않은 매개변수의 값은 undefined, 매개변수 < 인수일 경우 초과된 인수는 무시(버려지지 않고, arguments 객체의 프로퍼티로 보관됨) function add(x, y) { console.log(arguments); // Arguments(3) [2, 5, 10, callee:.. <모던 자바스크립트 Deep Dive> 11~12.4장 원시 값과 객체의 비교, 함수 요약 11. 원시 값과 객체의 비교 1) 원시 타입과 객체 타입의 차이점 - 원시 값은 변경 불가능, 객체 타입의 값은 변경 가능 - 원시 값을 변수에 할당하면 변수에 실제 값이 저장됨, 객체를 변수에 할당하면 변수에 참조 값이 저장됨 - 원시 값을 갖는 변수를 다른 변수에 할당할 경우 원시 값이 복사되어 전달(값에 의한 전달), 객체를 가리키는 변수를 다른 변수에 할당할 경우 참조 값이 복사되어 전달(참조에 의한 전달) 2) 원시 값 - 변수 : 하나의 값을 저장하기 위해 확보한 메모리 공간 - 값 : 변수에 저장된 데이터로서 표현식이 평가되어 생성된 결과 - 원시 값인 즉슨 '변경 불가능한 값'이므로 데이터의 신뢰성이 보장됨 - 원시 값을 할당한 변수는 변수의 값을 바꾸려면 재할당하는 방법밖에는 없음 -.. <모던 자바스크립트 Deep Dive> 09~10장 타입 변환과 단축 평가, 객체 리터럴 요약 09. 타입 변환과 단축 평가 1) 타입 변환 - 명시적 타입 변환 : 개발자가 의도를 가지고 값의 타입을 변환시키는 것 ex. 여러 방법을 이용하여 문자열, 숫자, 불리언 타입으로 변환시키는 것이 가능 - 암묵적 타입 변환 : 자바스크립트 엔진에 의해 값의 타입이 자동으로 변환되는 것 ex. 맥락에 따라 문자열, 숫자, 불리언 타입으로 변환 일어남 - 타입 변환은 기본적으로 원시 값을 변경하는 것이 아니라 기존 원시 값을 사용해 새로운 원시 값을 생성하는 것임 - 특히, 암묵적 타입 변환은 새로운 타입의 값 생성 후 한 번 쓰고 버림 - 두 가지 타입 변환에서 무엇보다 중요한 것은 타입 변환이 예측 가능해야 한다는 것 2) 단축 평가 - 단축 평가 : 논리곱(&&) 연산자와 논리합(||) 연산자가 논리.. 이전 1 2 3 4 5 6 ··· 21 다음