자바스크립트는 기존 C++이나 자바 같은 객체지향 프로그래밍 언어와는 다른 프로토타입 기반의 객체지향 프로그래밍을 지원한다. 자바스크립트에서 객체는 자기 자신의 프로퍼티뿐만 아니라, 자신의 부모 역할을 하는 프로토타입 객체의 프로퍼티 또한 마치 자신의 것처럼 접근하는게 가능하다. 이것을 가능케 하는 게 바로 프로토타입 체이닝 이다. 이전 글에 정리한 함수, this만 이해하면 프로토타입 체이닝은 딱히 어려운 점은 없다. [JavaScript] 4. 함수와 프로토타입 체이닝 (1) - 함수란 [JavaScript] 4. 함수와 프로토타입 체이닝 (2) - this란 객체 리터럴 방식으로 생성된 객체의 프로토타입 체이닝 var myObject = { name: 'foo', sayName: function()..
인사이드 자바스크립트국내도서저자 : 고현준,송형주출판 : 한빛미디어 2014.01.02상세보기 함수 호출과 this arguments 객체C와 같은 엄격한 언어와 달리, 자바스크립트에서는 함수를 호출할 때 함수 형식에 맞춰 인자를 넘기지 않더라도 에러가 발생하지 않는다. 정의된 함수의 인자보다 적게 함수를 호출했을 경우, 넘겨지지 않은 인자에는 undefined 값이 할당된다. 이와 반대로 정의된 인자 개수보다 많게 호출했을 경우 초과된 인수는 무시된다.이러한 특성 때문에, 런타임 시에 호출된 인자의 개수를 확인하고 이에 따라 동작을 다르게 해줘야 할 경우가 있다. 이를 가능케 하는게 함수를 호출할 때 암묵적으로 전달되는 arguments 객체다. 이 객체는 실제 배열이 아닌 유사 배열 객체이다. fun..
이 글은 4 Types of Memory Leaks in JavaScript and How to Get Rid Of Them를 번역한 글입니다. 번역 문서를 읽는 중, 오타나 어색한 문장이 있으면 부담없이 댓글 부탁드립니다. 이번 글에서 클라이언트단 JavaScript 코드의 일반적인 메모리 누수 유형에 대해 살펴보겠습니다. 또한 크롬 개발 도구(Chrome DevTools)를 사용하여 메모리 누수를 찾는 방법에 대해서도 알아보겠습니다. Introduction 메모리 누수(Memory leaks)는 모든 개발자들이 직면하는 문제입니다. 심지어 메모리를 관리해주는 프로그래밍 언어(Java, C# 등)를 사용하는 경우에도 메모리 누수 문제에서 벗어날 수 없습니다. 메모리 누수는 어플리케이션의 속도 저하, 충..
인사이드 자바스크립트국내도서저자 : 고현준,송형주출판 : 한빛미디어 2014.01.02상세보기 함수 정의 자바스크립트에서 함수를 생성하는 방법은 3가지가 있다. 이들 방식은 모두 같은 함수를 생성하지만, 각각의 방식에 따라 함수 동작이 미묘하게 차이가 난다. 함수 선언문(function statement) 함수 표현식(function expression) Function() 생성자 함수 함수 선언문이나 함수 표현식 방법은 함수 리터럴 방식으로 함수를 생성한다.1. 함수 선언문 방식 function add(x, y) { return x + y; } console.log(add(3, 4)); // 7 2. 함수 표현문 방식 var add = function (x, y) { return x + y; } var..
ECMAScript 6 이 문서는 https://github.com/lukehoban/es6features 를 번역한 내용입니다. 번역 문서를 읽는 중, 오타나 어색한 문장이 있으면 이슈를 등록해주세요! Introduction ECMAScript 2015로도 알려져 있는 ECMAScript 6는 ECMAScript 표준의 가장 최신 버전입니다. ES6는 새로운 언어 기능이 포함된 주요 업데이트이며, 2009년도에 표준화된 ES5 이후로 언어 기능에 대한 첫 업데이트이기도 합니다. 현재 주요 JavaScript 엔진들에서 ES6 기능들을 구현 중에 있습니다. ECMAScript 6 언어의 전체 스펙을 확인하시려면 ES6 Standard를 확인하세요. ES6는 아래의 새로운 기능들을 포함하고 있습니다. ar..
foreach 반복문 foreach 반복문은 오직 Array 객체에서만 사용가능한 메서드입니다.(ES6부터는 Map, Set 등에서도 지원됩니다) 배열의 요소들을 반복하여 작업을 수행할 수 있습니다. foreach 구문의 인자로 callback 함수를 등록할 수 있고, 배열의 각 요소들이 반복될 때 이 callback 함수가 호출됩니다. callback 함수에서 배열 요소의 인덱스와 값에 접근할 수 있습니다. var items = ['item1', 'item2', 'item3']; items.forEach(function(item) { console.log(item); }); // 출력 결과: item, item2, item3 for …in 반복문 for in 반복문은 객체의 속성들을 반복하여 작업을 수..
인사이드 자바스크립트국내도서저자 : 고현준,송형주출판 : 한빛미디어 2014.01.02상세보기 자바스크립트의 데이터 타입 기본타입 : 숫자(Number), 문자열(String), 불린값(Boolean), undefined, null 참조타입 : 객체(Object) - 배열(Array), 함수(Function), 정규표현식 자바스크립트에서는 모든 숫자를 64비트 부동 소수점 형태로 저장한다. var intNum = 10; var floatNum = 0.1; console.log(typeof intNum); // number console.log(typeof floatNum); // number 문자열은 문자 배열처럼 인덱스를 이용해서 접근할 수 있다. 한 번 생성된 문자열은 읽기만 가능하지 수정은 불가능하..
이 글은 4 JavaScript Design Patterns You Should Know를 번역한 글입니다. 모든 개발자는 유지 보수 가능하고 읽기 쉽고 재사용 가능한 코드를 작성하려고 노력합니다. 응용 프로그램이 커질수록 코드 구조화가 중요 해집니다. 디자인 패턴은 이러한 문제를 해결하는 데 중요한 역할을하며 공통된 환경에 대한 조직 구조를 제공합니다. JavaScript 웹 개발자는 응용 프로그램을 만들 때 무의식적으로도 디자인 패턴과 자주 상호 작용합니다. 비록 특정한 상황에서 사용되는 다양한 디자인 패턴들도 있지만, 일반적으로 JavaScript 개발자들이 많이 쓰는 몇몇의 패턴들이 있습니다. 이번 포스트에서 프로그래밍 스킬을 향상시키기 위해 이러한 일반적인 패턴들에 대해 이야기하고, JavaSc..