1.정수변환
- Math.floor() : 소숫점을 내림한다 (음수의 경우 발생)
- Math.trunc() : 소숫점 이하 수를 없애고 싶을 때 사용
- ~~연산자(double.tilde:not) : . double tilde: not의 기능을 하는 비트 연산자이다. 10진수 5(16비트 2진수 0000000000000100)에 tilde를 적용하면 -6(16비트 2진수 1111111111111011) 이며 이 과정에서 소수점은 버려지게 된다. -6에 다시 tilde를 적용하면(double tilde, ~~5라고 표기) 다시 정수 5로 돌아오게 되어 결과적으로 Math.floor()와 같은 기능을 하게 된다. 이는 특정 브라우저에서 Math.floor()나 parseInt보다 빠른 퍼포먼스를 보여줄 수 있으나, 유지보수하는 사람의 입장에서 문맥의 이해에 어려움이 있을수 있다.
- parseInt : 소숫점을 버리고 정수값만 반환. 음수일 경우 같은 수에 다른 결과가 나올 수 있어서 주의해야함.
2. 배열 증가
-
reduce() : reduce
는 배열을 하나의 값으로 축소하는 데 사용됩니다. 주어진 함수는 배열의 각 요소에 대해 호출되며, 이전 호출의 결과가 다음 호출로 전달됩니다.
- arr.reduce(callback[,initialValue])
ex) numbers.reduce((a,b) => [...a,b 2],[]);
- 다음 4가지의 인수
1. accumulator : accumulator는 callback함수의 반환값을 누적합니다.
2. currentValue - 현재 배열의 요소
3. index(Optional) - 배열의 현재 요소의 인덱스
4. array(Optional) - 호출한 배열
-callback함수의 반환 값은 accumulator에 할당되고 순회 중 계속 누적되어 최종적으로 하나의 값을 반환합니다.
- initialValue(Optional)
- 최초 callback함수 실행 시 accumulator. 인수에 제공되는 값. 초기값을 제공하지 않을 경우 배열의 첫 번째 요소를 사용하고, 빈 배열에서 초기값이 없을 경우 에러가 발생
-
map() : map
은 배열의 각 요소에 대해 주어진 함수를 호출하고, 그 결과를 새로운 배열로 반환합니다. 원본 배열은 변하지 않습니다.
※ map은 변환, reduce는 축소를 위해 사용되기 떄문에 목적에 맞게 사용할 것. 단순한 변환 이상으로 더 복잡한 작업을 수행할 경우 reduce
가 더 강력하다.
- for()
- for ([초기문]; [조건문]; [증감문]){
문장
}
// 예시
function howMany(selectObject) {
var numberSelected = 0;
for (var i = 0; i < selectObject.options.length; i++) {
if (selectObject.options[i].selected) {
numberSelected++;
}
}
return numberSelected;
}