참고
기본함수
함수 - 호출과 참조
NOTE
•
자바스크립트에서는 함수도 객체이다
◦
다른 객체와 마찬가지로 넘겨주거나 할당이 가능하다.
•
식별자 뒤에 괄호의 여부에 따라 호출과 참조가 갈림
함수 호출과 참조 코드
함수 - 매개변수
NOTE
•
함수안에서 기본타입을 변경하면 외부에 영향을 끼치지 못한다.
함수내부 기본타입 반영 코드
•
함수안에서 객체 자체를 변경하면 밖에서도 반영된다.
함수내부 객체반영 코드
•
매개변수의 수에 관계없이 같은 함수를 호출하며, 개수가 적은경우 undefined로 정의됨
함수 - this
NOTE
•
메서드를 호출하면 this는 호출한 메서드를 소유하는 객체가 된다.
this 호출 메서드 코드
•
중첩된 함수 안에서 this를 사용하려다 보면 혼란스러운 경우가 많이 발생한다
◦
앞의 경우에는 this가 o가 아닌 다른것에 묶여 제대로 실행안됨
◦
뒤의 경우에는 this의 값을 다른 변수에 할당해줌
중첩함수 this 코드
함수 - 화살표 표기법
•
function 생략 가능
•
함수에 매개변수가 하나라면 괄호도 생략가능
•
함수 바디가 표현식 하나라면 중괄호과 return도 생략가능
const f1 = function(){return "hello";!)
//또는
const f1 = () =>"hello";
const f2 = function(name) {return `hello ${name}`;}
// 또는
const f2 = name => `Hello ${name}`;
const f3 = function(a,b) {return a+b; }
// 또는
const f3 = (a,b) => a+b;
JavaScript
복사
•
일반 함수와 중요한 차이가 존재함
◦
화살표 함수에는 this가 존재하지 않는다
const o3 = {
name: "Julia",
greeBackwards: function () {
const getReverseName = () => {
let nameBackwards = "";
for (let i = this.name.length - 1; i >= 0; i--) {
nameBackwards += this.name[i];
}
return nameBackwards;
};
return `${getReverseName()}
// si eman ym, olleH`;
},
};
JavaScript
복사
함수 - 콜백함수
•
파라미터로 함수를 전달받아, 함수의 내부에서 실행하는 함수이다.
let number = [1, 2, 3, 4, 5];
number.forEach(x => {
console.log(x * 2);
});
JavaScript
복사
forEach → 함수 안에 익명의 함수를 넣어서 forEach문을 완성시킨다.