유효범위(Scope)는 변수의 수명을 의미한다.함수 밖에서 변수를 선언하면 그 변수는 전역변수가 된다. 전역변수는 에플리케이션 전역에서 접근이 가능한 변수다. 그렇기 때문에 함수 fscope 내에서 vscope를 호출 했을 때 함수 밖에서 선언된 vscope의 값 gl
JavaScript에서는 함수는 객체이다. 즉 일종의 값이다. JavaScript의 함수가 다른 언어의 함수와 다른 점은 함수가 값이 될 수 있다는 점이다.함수는 변수에 담겨질 수도 있고, 객체에 담겨질 수도 있다.변수에 담겨진 값으로서의 함수객체에 담겨진 값으로서의
클로저(closure)는 내부함수가 외부함수의 맥락(context)에 접근할 수 있는 것을 가르킨다.자바스크립트는 함수 안에 또 다른 함수를 선언할 수 있다. 이를 내부함수라고 하며, 바깥 쪽의 함수는 외부함수라고 한다. 내부함수는 외부함수의 지역변수에 접근할 수 있다
arguments는 함수 안에서 사용할 수 있도록 자바스크립트에서 약속된 인자와 관련된 정보를 갖고 있는 객체(유사 배열)이다. 배열은 아니지만 배열과 사용방법이 매우 유사하다. 함수를 호출할 때 입력한 인자들의 목록이 담겨 있으며, 배열처럼 접근할 수 있다.인자와 매
함수 호출 위는 함수를 호출하는 가장 기본적인 방법이다. JavaScript는 함수를 호출하는 특별한 방법을 제공한다. 본 토픽의 시작에서 함수를 객체라고 했다. 자바스크립트에서 위의 func과 같은 함수는 Function이라는 객체의 인스턴스다. 따라서 func는
변수와 관련된 메소드를 하나의 객체로 그룹핑/카테고라이징해 객체들을 조립하듯 프로그램을 만드는 것. 이 때 객체는 독립성을 갖게 되고, 좋은 부품이 될 수 있다.Javascript는 Prototype-based programming, 프로토타입 기반 프로그래밍에 속해
전역객체(Global object)는 특수한 객체다. 모든 객체는 이 전역객체의 프로퍼티다. func();와 window.func();는 모두 실행이 된다. 모든 전역변수와 함수는 사실 window 객체의 프로퍼티다. 객체를 명시하지 않으면 암시적으로 window의 프
함수 안에 있는 약속된 변수. 이 안의 값은 함수를 어떻게 호출하느냐에 따라 달라진다.함수를 호출했을 때 this는 무엇을 가르키는지 살펴보자. this는 전역객체인 window와 같다. 웹브라우저 자바스크립트에서 모든 객체는 전역변수의 프로퍼티이기 때문이다.객체의 소
상속(Inheritance) 상속은 객체의 로직을 그대로 물려 받는 또 다른 객체를 만들 수 있는 기능을 의미한다. 단순히 물려받는 것이라면 의미가 없을 것이다. 기존의 로직을 수정하고 변경해서 파생된 새로운 객체를 만들 수 있게 해준다.
표준 내장 객체(Standard Built-in Object)는 자바스크립트가 기본적으로 가지고 있는 객체들을 의미한다. 내장 객체가 중요한 이유는 프로그래밍을 하는데 기본적으로 필요한 도구들이기 때문에다. 결국 프로그래밍이라는 것은 언어와 호스트 환경에 제공하는 기능
Object는 객체의 가장 기본적인 형태를 가지고 있는 객체로, 모든 객체는 Object를 부모로 한다.(상속받는다.) 즉, 모든 객체는 Object의 prototype을 상속받는다.따라서 모든 객체들에 공통으로 기능을 추가하고 싶다면 Object의 prototype
데이터 타입은 원시(기본) 데이터 타입과 객체(참조) 데이터 타입으로 나뉘어지며, 원시 데이터 타입이 아닌 모든 것은 객체 데이터 타입이다.숫자문자열불리언(true/false)nullundefined문자열은 객체가 아니지만 프로퍼티와 메소드가 있다. 그 이유는 문자열과
복제 값을 변경한 것은 변수 b이기 때문에 변수 a에 담겨있는 값은 그대로이다. 변수 b의 값에 변수 a의 값이 복제된 것이다. a의 값이 원시데이터 타입일 땐 이처럼 복제된다. 참조 변수 b에 담긴 객체의 id 값을 2로 변경했을 뿐인데 a.id의 값도 2가 되