함수는 JavaScript에서 하나의 데이터고, 뒤에 소괄호를 열고 닫아야 함수가 동작한다.
// function
function hello() {
console.log('Hello!')
}
// call
hello()
함수에 소괄호를 쓰지 않으면?
function getNumber() {
return 123
}
console.log(getNumber)
console.log(getNumber())
단순히 함수 그 자체가 출력되는 것을 확인할 수 있다.
함수 자체와 소괄호를 열고 닫아서 호출하는 것은 다르다.
소괄호를 열고 닫아 함수를 호출해야, 함수에 지정한 return 값이 나온다.
타입 확인
function getNumber() {
return 123
}
console.log(typeof getNumber)
console.log(typeof getNumber())
함수에 소괄호가 붙어있으면, 그 함수의 return 값의 종류가 typeof에 출력되고
함수 그 자체라면 function으로 출력된다.
변수에 익명함수를 넣어도 동일하게 동작함
// 이름이 없는 익명함수
const getNumber = function() {
return 123
}
console.log(typeof getNumber)
console.log(typeof getNumber())
function 실습
const a = function(){
console.log('A')
}
const b = function(c){
console.log(c)
}
b(123)
b(a)
b에 a를 넣어도, c를 함수로 동작시키는게 아닌
통으로 출력하도록 써놨기 때문에 a가 통으로 출력되는 것을 확인할 수 있음
const a = function(){
console.log('A')
}
const b = function(c){
console.log(c)
c()
}
b(a)
b에 들어있는 함수의 매개변수인 c에 소괄호를 열고 닫는 동작을 작성하여,
a의 함수를 동작하게 할 수 있다 !
함수는 하나의 데이터로써,
그 함수 자체와 함수의 호출(소괄호사용)은 전혀 다른 개념이라는 것을 꼭 기억하자 !
쉽지 않다 JS ..
'JAVA script' 카테고리의 다른 글
[JavaScript] 데이터 타입 확인 ( typeof / constructor ) (0) | 2023.05.06 |
---|---|
[JavaScript] 형 변환 ( Type Conversion ) / 참과 거짓 (Truthy & Falsy ) (0) | 2023.05.06 |
[JavaScript] 참조형 데이터 - Object(객체) (1) | 2023.05.06 |
[JavaScript] 원시형 데이터 - String(문자열) / Number(숫자) (0) | 2023.05.06 |
[JavaScript] 참조형 데이터 - 배열 Array (0) | 2023.05.06 |