function
키워드로 함수 선언식(함수 선언 방식)으로 생성이 가능하다. 소괄호 안에 매개변수를 받아 함수에 전달이 가능하다. 호출부에서 인수를 넣어주면 값이 대입이 된다.
return
을 통해 값을 반환할 수도 있다.
function getArea(width, height) {
let area = width * height;
console.log(area);
return area
}
getArea(200, 100); // 20000
const area = getArea(50, 100);
console.log(area); // 5000
함수 내부에서 선언한 변수는 외부에서 접근이 불가능한 지역변수이다. 반대로 외부에서 선언한 변수는 함수 내부에서 접근이 가능하다. 어디서나 접근할 수 있는 변수를 전역변수라고 한다.
let count = 1
function getArea(width, height) {
let area = width * height;
console.log(count); // 1
return area
}
console.log(area); // ReferenceError: area is not defined
함수도 자바스크립트에선 자료형이다. 함수 표현식으로 작성된 함수는 변수나 상수에 담아 활용이 가능하다.
let hello = function () {
return "안녕하세요"
}
console.log(hello()); // 안녕하세요
화살표를 이용해 함수를 표현할 수 있다. 익명함수를 빠르게 작성할 수 있는 문법이다.
let helloA = () => {
return "안녕하세요 여러분";
}
let helloB = () => "안녕하세요 여러분";
console.log(helloA()); // 안녕하세요 여러분
console.log(helloB()); // 안녕하세요 여러분
함수의 매개변수로 넘겨준 함수를 의미한다. 함수 내부에서 콜백 함수 호출이 가능하다.
function checkMood (mood, goodCallback, badCallback) {
if(mood === "good") {
goodCallback()
} else {
badCallback()
}
}
function cry() {
console.log("Action : CRY");
};
function sing() {
console.log("Action : SING");
};
function dance() {
console.log("Action : DANCE");
};
checkMood("good", sing, cry); // Action : SING
checkMood("sad", dance, cry); // Action : CRY
비 원시 타입 자료형인 객체는 여러 개의 값을 가질 수 있다. 객체 생성자를 이용하거나 객체 리터럴을 이용해 만들 수 있다.
let person = new Object(); // 객체 생성자
let person2 = {}; // 객체 리터럴
키(key)와 밸류(value) 쌍으로 값을 저장하며 프로퍼티(객체 프로퍼티)라고 부른다.
let person = {
key: "value",
key2: true,
key3: undefined,
key4: [1, 2],
key5: function () {}
};
프로퍼티 접근법에는 점 표기법과 대괄호 표기법이 있다. key를 통해 매칭되는 value를 가져오고 없다면 undefined
를 반환한다.
let person = {
key: "value",
key2: true,
key3: undefined,
key4: [1, 2],
key5: function () {}
};
console.log(person.key); // value;
console.log(person["key6"]); // undefined
프로퍼티 추가나 수정도 가능하다.
const person = {
name: "홍길동",
age: 25
}
person.location = "한국"
person.["gender"] = "남"
person.name = "전우치"
console.log(person); // {name: "전우치", age: 25, location: "한국", gender: "남"}
프로퍼티의 value에는 함수도 담을 수 있다. 프로퍼티로 함수를 담은 것을 메서드라고 부른다. this
키워드를 이용하면 자신의 객체를 참조 가능하다.
const person = {
name: "홍길동",
age: 25,
say: function () {
console.log(`안녕 나는 ${this.name}이야`)
}
}
person.say(); // 안녕 나는 홍길동이야
in
연산자를 이용해 객체 내 프로퍼티가 존재하는지 파악이 가능하다. 이를 이용해 존재하지 않은 프로퍼티 접근을 피할 수 있다.
const person = {
name: "홍길동",
age: 25,
say: function () {
console.log(`안녕 나는 ${this.name}`);
}
}
console.log(person.gender); // undefined;
console.log(`name : ${"name" in person}`); // name : true
console.log(`gender: ${"gender" in person}`); // gender: false
본 후기는 정보통신산업진흥원(NIPA)에서 주관하는 <AI 서비스 완성! AI+웹개발 취업캠프 - 프론트엔드&백엔드> 과정 학습/프로젝트/과제 기록으로 작성 되었습니다.