function() { }
function 함수() {
}
let 함수 = function () { };
p.202 <윤년을 확인하는 함수 만들기> 예제를 실행하여 2022년이 윤년인지 확인하는 결과 인증샷
가변 매개변수 함수
: 매개변수의 개수가 고정되어 있지 않는 함수함수 이름 (매개변수 = 기본값, 매개변수)
function sample(a=기본값, b) { }
지문이 명확하지 않았고, 실행 결과가 이상해서 정오표를 찾아봤지만, 그래도 애매했다.
A가 무조건 B보다 작다
는 조건이 없다.1과 2사이에는 숫자가 없으므로 0이 답
이 되어야하지 않을까? 라는 생각이 든다.2-1. 매개변수로 배열
을 받는 max()함수
<script>
const max = function (array) {
let output = array[0];
for (const i of array) {
if (output < i) {
output = i;
}
}
return output;
}
console.log(max(1, 2, 3, 4));
</script>
2-2. 매개변수로 숫자
를 받는 max() 함수
<script>
const max = function (...array) {
let output = array[0];
for (const i of array) {
if (output < i) {
output = i;
}
}
return output;
}
console.log(max(1, 2, 3, 4));
</script>
2-3. 매개변수로 숫자와 배열 모두
를 입력 받는 max() 함수
const max2 = function (number, ...array) {
let output;
let items;
if (Array.isArray(number)) {
output = number[0];
items = number;
}
else if (typeof(number) === 'number') {
output = number
items = array
}
for (const i of array) {
if (output < i) {
output = i;
}
}
return output;
}
console.log(`max(배열): ${max([1, 2, 3, 4])}`);
console.log(`max(숫자, ...): ${max(1, 2, 3, 4)}`);
콜백 함수
라고 한다.const numbers = [273, 52, 103, 32, 57];
numbers.forEach( function (value, index, array) {
console.log(`${index}번째 요소: ${value}`);
});
let numbers = [273, 52, 103, 32, 57];
numbers = numbers.map( function (value) {
return value * value;
});
numbers.forEach(console.log);
true
인 것들만 모아서 새로운 배열을 만드는 함수const numbers = c
const evenNumbers = numbers.filter(function (value) {
return value % 2 === 0;
});
console.log(`원래 배열: ${numbers}`);
console.log(`짝수만 추출: ${evenNumbers}`);
let numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
// method chaining
numbers
.filter((value) => value % 2 === 0)
.map((value) => value * value)
.forEach((value) => {
console.log(value)
});
함수 이름 | 설명 |
---|---|
setTimeout(함수.시간) | 특정 시간 후에 함수를 한 번 호출 |
setInterval(함수.시간) | 특정 시간마다 함수를 호출 |
clearTimeout(타이머_ID) | setTimeout() 함수로 설정한 타이머 제거 |
clearInterval(타이머_ID) | setInterval() 함수로 설정한 타이머 제거 |
스코프(Scope) : 변수가 존재하는 범위
같은 단계에 있을 경우 무조건 충돌이 발생하는데, 스코프 단계를 변경하는 방법은 중괄호를 사용해서 블록을 만들거나, 함수를 생성해서 블록을 만드는 방법이 있다.
섀도잉(Shadowing) : 블록이 다른 경우 내부 변수가 외부 변수를 가리는 현상
엄격 모드(strict mode) : 블록의 가장 위쪽에 'use strict'
라는 문자열을 이용하여 코드를 엄격하게 검사한다.
익명 함수 : 순차적인 코드 실행에서 코드가 해당 줄을 읽을 때 생성된다.
선언적 함수 : 순차적인 코드 실행이 일어나기 전에 생성되어 같은 블록이라면 어디에서 함수를 호출해도 상관 없다.
홀수만 추출, 100이하의 수만 추출, 5로 나눈 나머지가 0인 수만 추출
하는 코드를 작성해보자.p.240 확인 문제 1번 풀고, 풀이 과정 설명하기
<script>
let numbers = [273, 25, 75, 52, 103, 32, 57, 24, 76];
// 홀수만 추출하고
numbers = numbers.filter((value) => value % 2 === 1)
// 100이하의 수만 추출하고
numbers = numbers.filter((value) => value < 101)
// 5로 나눈 나머지가 0인 수만 추출
numbers = numbers.filter((value) => value % 5 === 0)
console.log(numbers);
</script>