# 자바스크립트 학습
# true, false 를 반환하는 메소드
## every()
구분 |
데이터(값) |
data |
반복 대상 |
파라미터 |
콜백 함수 |
this로 참조할 오브젝트opt |
반환 |
true, false |
- forEach() 메소드 처럼 시맨틱 접근을 한다.
- 배열의 엘리먼트를 하나씩 읽어가면서 flase를 반환할 때까지 콜백 함수를 호출한다.
- 즉, false를 반환하지 않으면 true를 반환한다.
var value = [20, 10, 30, 40];
var fn = function(el, index, all) {
log(el);
return el > 15;
};
var result = value.every(fn);
log("결과:", result);
=>
20
10
결과:flase
- false가 되는 조건이 배열의 앞에 있을 때 효율성이 높다.
## some()
구분 |
데이터(값) |
data |
반복 대상 |
파라미터 |
콜백 함수 |
this로 참조할 오브젝트opt |
반환 |
true, false |
- every() 메소드 처럼 시맨틱 접근을 한다.
- 단, true를 반환할 때까지 콜백 함수를 호출한다. 즉, true가 반환되면 반복이 종료된다.
- true를 반환하지 않으면 false를 반환한다.true가 되는 조건이 배열의 앞에 있을 때 효율성이 높다.
var value = [10, 20, 30, 40];
var fn = function(el, index, all) {
log(el);
return el > 15;
};
var result = value.some(fn);
log("결과:", result);
=>
10
20
결과:true
# 필터, 매핑
## filter()
구분 |
데이터(값) |
data |
반복 대상 |
파라미터 |
콜백 함수 |
this로 참조할 오브젝트opt |
반환 |
[true일 때의 엘리먼트] |
- forEach() 메소드 처럼 시맨틱 접근을 한다.
- 배열의 엘리먼트를 하나씩 읽어가면서 콜백 함수에서 true를 반환하면 현재 읽은 엘리먼트를 반환한다.
- 조건에 맞는 엘리먼트를 추려낼 때 유용하다.
var value = [10, 20, 30, 40];
var fn = function(el, index, all) {
return el > 15;
};
var result = value.filter(fn);
log("결과:", result);
=>
[20, 30, 40]
true가 하나도 없으면 빈 배열 반환.
## map()
구분 |
데이터(값) |
data |
반복 대상 |
파라미터 |
콜백 함수 |
this로 참조할 오브젝트opt |
반환 |
[콜백 함수에서 반환한 엘리먼트] |
- forEach() 메소드 처럼 시맨틱 접근을 한다.
- 배열의 엘리먼트를 하나씩 읽어가면서 콜백 함수에서 반환한 값을 새로운 배열에 첨부하여 반환한다.
var value = [10, 20, 30, 40];
var fn = function(el, index, all) {
return el + this.add;
};
var point = {add: 100};
var result = value.map(fn, point);
log(result);
=>
[110, 120, 130]
# 반환 값을 파라미터 값으로 사용
## reduce()
구분 |
데이터(값) |
data |
반복 대상 |
파라미터 |
콜백 함수 |
초깃값opt |
반환 |
콜백 함수에서 반환한 값 |
- forEach() 메소드처럼 시맨틱 접근
- 배열 끝까지 콜백 함수를 호출한다. 파라미터 작성 여부에 따라 처리가 다르다.
- 콜백 함수만 작성한 경우(즉, 파라미터를 하나만 작성한 경우)
var value = [1, 3, 5, 7];
var fn = function(prev, curr, index, all) {
log(prev + "," + curr);
return prev + curr;
};
var result = value.reduce(fn);
log("결과:", result);
=>
1,3
4,5
9,7
결과:16
*reduce() 콜백 함수만 작성한 경우(즉, 파라미터를 하나만 작성한 경우)
처음 콜백 함수를 호출할 때
인덱스[0]의 값을 직전 값에 설정
인덱스[1]의 값을 현재 값에 설정
인덱스에 1을 설정
두 번째로 콜백 함수를 호출할 때
콜백 함수에서 반환된 값을 직전 값에 설정
인덱스[2]의 값을 현재 값에 설정
var value = [1, 3, 5];
var fn = function(prev, curr, index, all) {
log(prev + "," + curr);
return prev + curr;
};
var result = value.reduce(fn, 7);
log("반환:", result);
=>
7,1
8,3
11,5
반환:16
*reduce() 두 번째 파라미터를 작성한 경우
처음 콜백 함수를 호출할 때
두 번째 파라미터 값을 직전 값에 설정
인덱스[0]의 값을 현재 값에 설정
인덱스에 0을 설정
두 번째로 콜백 함수를 호출할 때
콜백 함수에서 반환된 값을 직전 값에 설정
인덱스[1]의 값을 현재 값에 설정
## reduceRight()
구분 |
데이터(값) |
data |
반복 대상 |
파라미터 |
콜백 함수 |
초깃값opt |
반환 |
콜백 함수에서 반환한 값 |
- reduce()와 처리 방법이 같다.
- 단, 배열 끝에서 앞으로 하나씩 읽어가면서 콜백 함수를 호출, 콜백 함수에서 반환한 값을 반환한다.
var value = [1, 3, 5];
var fn = function(prev, curr, index, all) {
log(prev + "," + curr);
return prev + curr;
};
var result = value.reduceRight(fn);
log("반환:", result);
=>
7,5
12,3
15,1
반환:16
# Boolean 오브젝트
## Boolean 오브젝트
- 빌트인 오브젝트, true와 false로 처리한다.
- 값이 있으면 true로 인식
- false 인식의 기준
undefined
null
NaN
빈 문자열
숫자 타입 0
true를 1, false를 0으로 변환한다.
## Boolean 프로퍼티 리스트
이름 |
개요 |
new Boolean() |
인스턴스 생성 |
Boolean 함수 |
Boolean() |
Boolean 타입으로 변환 |
Boolean.prototype |
constructor |
생성자 |
toString() |
true/false를 문자열로 반환 |
valueOf() |
프리미티브 값 반환 |
## new Boolean()
구분 |
데이터(값) |
파라미터 |
값 |
반환 |
생성한 Boolean |
- Boolean 인스턴스를 생성
- 파라미터 값을 true 또는 false로 변환하여 프리미티브 값으로 설정한다.
var value = [undefined, null, NaN, 0, ""];
for (var k = 0; k < value.length; k++) {
var obj = new Boolean(value[k]);
log(obj + 1);
};
=>
1
1
1
1
1
- 문자열이면서 값이 있으면 true로 변환한다.
var value = [12, "1", "0", "false"];
for (var k = 0; k < value.length; k++) {
var obj = new Boolean(value[k]);
log(obj + 1);
};
=>
2
2
2
2
## Boolean()
구분 |
데이터(값) |
파라미터 |
값 |
반환 |
변환한 값 |
- Boolean 값으로 변환
- 인스턴스를 생성하지 않고 true 또는 false로 변환한다.
var value = [12, "1", "0", "false"];
for (var k = 0; k < value.length; k++) {
log(Boolean(value[k]) + 1);
};
=>
2
2
2
2
## toString()
구분 |
데이터(값) |
data |
변환 대상 |
파라미터 |
사용하지 않음 |
반환 |
문자열로 변환한 값 |
- data 위치의 true, false를 문자열로 변환 (즉, "true", "false"로 변환)
## valueOf()
구분 |
데이터(값) |
object |
Boolean 인스턴스 |
파라미터 |
사용하지 않음 |
반환 |
true, false |
- Boolean 인스턴스의 프리미티브 값 반환 (즉, true 또는 false 반환)
var obj = new Boolean(3);
log(obj.valueOf());
=>
true