Home
Youngho's Devlog
Cancel

[개발자 블로그] 5.21 빌트인 객체(PoiemaWeb-Javascript)

자바스크립트의 객체는 아래와 같이 크게 3개의 객체로 분류할 수 있다. 1. 네이티브 객체 네이티브 객체(Native objects or Built-in objects or Global Objects)는 ECMAScript 명세에 정의된 객체를 말하며 애플리케이션 전역의 공통 기능을 제공한다. 네이티브 객체는 애플리케이션의 환경과 관계없이 언제나...

[개발자 블로그] 5.20 객체 지향 프로래밍(PoiemaWeb-Javascript)

2.2 프로토타입 기반 언어 객체 지향의 상속, 캡슐화(정보 은닉) 등의 개념은 프로토타입 체인과 클로저 등으로 구현할 수 있다. 상속 -> 프로토타입 체인 캡슐화(정보 은닉) -> 클로저 4. 프로토타입 체인과 메소드의 정의 프로토타입 객체는 상속할 것들이 저장되는 장소이다. 아래는 더글라스 크락포드가 제안한 프로토타입 ...

[개발자 블로그] 5.19 클로저(PoiemaWeb-Javascript)

1. 클로저(closure)의 개념 function outerFunc() { var x = 10; var innerFunc = function () { console.log(x); }; return innerFunc; } /** * 함수 outerFunc를 호출하면 내부 함수 innerFunc가 반환된다. * 그리고 함수 oute...

[개발자 블로그] 5.18 실행 컨텍스트와 자바스크립트의 동작 원리(PoiemaWeb-Javascript)

해당 포스팅의 내용은 ES3를 기반으로 하고 있다. 1. 실행 컨텍스트 실행 컨텍스트(Execution Context)는 scope, hoisting, this, function, closure 등의 동작원리를 담고 있는 자바스크립트의 핵심원리이다. 실행 컨텍스트를 바로 이해하지 못하면 코드 독해가 어려워지며 디버깅도 매우 곤란해 질 것이다. EC...

[개발자 블로그] 5.17 this(PoiemaWeb-Javascript)

자바스크립트의 함수는 호출될 때, 매개변수로 전달되는 인자값 이외에, arguments 객체와 this를 암묵적으로 전달 받는다. function square(number) { console.log(arguments); console.log(this); return number * number; } square(2); 자바스크립트...

[Javascript] 상수 및 리터럴

프로그래밍 언어를 학습하다보면 보면 상수와 리터럴이란 단어를 자주 접할 수 있다. 이 둘의 차이는 아래와 같다. 상수(constant) 단 한 번만 값을 저장할 수 있는 저장공간을 뜻한다. 즉, 변하지 않는 변수를 의미하며 참조하는 메모리 값(메모리 위치)을 변경할 수 없다. final int i = 10; 이라는 코드에서 변수 i엔 절대 다른...

[개발자 블로그] 5.16 보다 안정적인 자바스크립트 개발 환경을 위한 Strict mode(PoiemaWeb-Javascript)

1. strict mode란? function foo() { x = 10; } console.log(x); // ? foo 함수 내에서 선언하지 않은 변수 x에 값 10을 할당하였다. 이때 변수 x를 찾아야 x에 값을 할당할 수 있기 때문에 자바스크립트 엔진은 변수 x가 어디에서 선언되었는지 스코프 체인을 통해 검색하기 시작한다. 자바스크립...

[개발자 블로그] 5.15 스코프(PoiemaWeb-Javascript)

1. 스코프란? 스코프(Scope, 유효범위)는 자바 스크립트를 포함한 모든 프로그래밍 언어의 기본적인 개념으로 확실한 이해가 필요하다. 스코프는 참조 대상 식별자(identifier, 변수, 함수의 이름과 같이 어떤 대상을 다른 대상과 구분하여 식별할 수 있는 유일한 이름)를 찾아내기 위한 규칙이다. 자바 스크립트는이 규칙대로 식별자를 찾는다. ...

[개발자 블로그] 5.14 프로토타입(PoiemaWeb-Javascript)

1. 프로토타입 객체 자바스크립트의 모든 객체는 자신의 부모 역할을 담당하는 객체와 연결되어 있다. 그리고 이것은 마치 객체 지향의 상속 개념과 같이 부모 객체의 프로퍼티 또는 메소드를 상속받아 사용할 수 있게 한다. 이러한 부모 객체를 Prototype(프로토타입) 객체 또는 줄여서 Prototype(프로토타입)이라 한다. 객체를 생성할 때 프로토...

[개발자 블로그] 5.12 함수(PoiemaWeb-Javascript)

2. 함수 호이스팅 자바스크립트는 ES6의 let, const를 포함하여 모든 선언(var, let, const, function, function*, class)을 호이스팅(Hoisting)한다. 호이스팅이란 var 선언문이나 function 선언문 등 모든 선언문이 해당 Scope의 선두로 옮겨진 것처럼 동작하는 특성을 말한다. 즉, 자바스...