25. Enhanced Object property

ES6에서 객체 리터럴 프로퍼티 기능이 확장되었다.

1. Object Property Value Shorthand

ES5에서는 프로퍼티 값으로 변수를 할당하더라도 프로퍼티 키와 값을 써주어야 한다.

1
2
3
4
5
6
7
8
9
10
var x = 1;
var y = 2;

var obj = {
x: x,
y: y
};

console.log(obj); // {x: 1, y: 2}
obj.x === obj['x']; // true

ES6에서는 프로퍼티 값으로 변수를 사용하는 경우에는 프로퍼티 키를 생략할 수 있다. (Property Shorthand) 프로퍼티 키는 변수의 이름으로 자동 생성된다.

1
2
3
4
5
6
7
let x = 1;
let y = 2;

const obj = { x, y };

console.log(obj); // {x: 1, y: 2}
obj.x === obj['x'] // true

24. Higher Order Function

고차 함수(Higher order function)

함수를 인자(paremeter)로 전달받거나 함수를 결과로 반환하는 함수.

고차 함수는 parameter로 받은 함수를 필요한 시점에 호출하거나 클로저를 생성해서 리턴한다. 자바스크립트에서 함수는 FIrst-class object이므로 값처럼 parameter 로 전달하고 리턴할 수 있다.

고차 함수는 외부에서 전달되는 보조 함수(Helper function)에 따라서 다른 동작을 수행할 수 있다. 함수는 선언된 위치의 스코프를 기억하므로 고차 함수가 클로저를 리턴하고 끝나도 클로저에 의해 참조되고 있는 고차 함수 내부의 변수는 소멸하지 않는다. 이렇게 클로저가 참조하고 있어 스코프가 유지되는 변수를 자유 변수(Free variable)라고 한다.

23. Array

자바스크립트에서는 배열(Array)도 객체이다. 배열은 Array 생성자로 생성된 Array type의 객체이며 프로토타입 객체로 Array.prototype을 가진다.

22. Regular Expression

Regular Expression

정규 표현식은 문자열에서 특정 내용을 찾거나 바꾸거나 뽑아내는 데에 사용된다.

아이디나 이메일, 비밀번호 등의 유효성 검사에 정규 표현식을 사용할 수 있다. 자주 사용하는 정규 표현식은 간단한 구글 검색으로 찾을 수 있지만, 표현식 구성법에 대해서 우선 정리해볼 것이다.

21. Number, Math and String Object

1. Number wrapper object

Number 객체 : primitive type number를 다룰 때 유용한 프로퍼티와 메소드를 제공하는 wrapper 객체. 변수 또는 객체의 프로퍼티의 값이 숫자라면 Number 객체를 별도로 생성하지 않고 Number 객체의 프로퍼티와 메소드를 사용할 수 있다.

Primitive type이 wrapper 객체의 메소드를 사용할 수 있는 이유: primitive type으로 wrapper 객체의 프로퍼티나 메소드를 호출할 때 일시적으로 해당 타입과 연관된 wrapper 객체로 변환해 프로토타입 객체를 공유하기 때문.

Underscore: each

each pass

1
2
3
4
5
6
7
8
9
10
11
12
_.each = function(collection, iterator) {
if (Array.isArray(collection)) {
for (let index = 0; index < collection.length; index++) {
iterator(collection[index], Number(index), collection);
}
} else {
for (let key in collection) {
if (key !== 'someProperty')
iterator(collection[key], key, collection);
}
}
};
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×