함수와 메서드: 자바스크립트에서 함수는 특정 작업을 수행하는 코드 블록을 의미한다. 메서드는 객체의 프로퍼티로 저장된 함수이다. 함수와 메서드를 사용하면 코드의 재사용성과 구조를 개선할 수 있다.
익명 함수
익명 함수: 이름이 없는 함수이다. 주로 함수 표현식이나 즉시 실행 함수에서 사용된다. 익명 함수는 변수에 할당하거나 다른 함수의 인수로 전달할 수 있다.
const greet = function() {
console.log('Hello, world!');
};
greet(); // 'Hello, world!' 출력
함수 표현식
함수를 변수에 담을 수 있다: 함수 표현식을 사용하여 함수 자체를 변수에 할당할 수 있다. 이는 함수가 일급 객체이기 때문이다.
const add = function(a, b) {
return a + b;
};
console.log(add(2, 3)); // 5 출력
반환
반환: 함수는 return 키워드를 사용하여 값을 반환할 수 있다. 이는 C 언어와 유사한 개념이다.
메서드 접근
메서드 접근: 객체의 프로퍼티로 저장된 함수는 . 연산자를 사용하여 접근할 수 있다.
const obj = {
greet: function() {
console.log('Hello, world!');
}
};
obj.greet(); // 'Hello, world!' 출력
console.log()
console.log(): console 객체에 있는 log 메서드를 호출하여 메시지를 출력한다.
console.log('This is a message'); // 'This is a message' 출력
할당하기 전에 블록안에 사용할 변수 선언 안되어있으면 undefined
매개변수와 전달인자
함수 선언 시 정의되는 변수를 매개변수라 하며, 함수를 호출할 때 전달하는 값을 전달인자라고 한다.
function greet(name) {
console.log('Hello, ' + name);
}
greet('Alice'); // 'Hello, Alice' 출력
var 키워드
var로 선언된 변수는 함수 스코프를 가지며, 선언하기 전에 사용할 경우 undefined가 할당된다.
var의 전역 스코프와 함수 스코프
var는 전역, 하지만 함수 스코프 안에서만 지역: var 키워드로 선언된 변수는 함수 스코프를 가지며, 블록 스코프를 가지지 않는다. 따라서 함수 내에서만 지역 변수가 된다.
if (true) {
var x = 5;
}
console.log(x); // 5 출력, 블록 밖에서도 접근 가능
function test() {
var y = 10;
}
console.log(y); // ReferenceError: y is not defined, 함수 밖에서는 접근 불가능