undefined
๋ฐํ// ๋ฐฐ์ด ๋ง๋ค๊ธฐ
let fruits = ["apple", "banana", "pear"];
console.log(fruits.length); // ๋ฐฐ์ด์ ๊ธธ์ด 3
// ํจ์ ์ ์ - ํจ์ ์ ์ธ๋ฌธ
function square(number) {
return number * number;
}
// ํจ์ ํธ์ถ
square(2); // 4
square(4); // 16 ์ฌ๋ฌ๋ฒ ํธ์ถ ๊ฐ๋ฅ
()
๋ก ๊ฐ์ธ๊ณ ์ฝค๋ง,
๋ก ๋ถ๋ฆฌ{}
๋ก ๋ฌธ๋ค์ ๊ฐ์ธ๊ณ return
๋ฌธ์ผ๋ก ๊ฒฐ๊ณผ๊ฐ(= ๋ฐํ๊ฐ, return value)์ ๋ฐํ// ํจ์ ์ ์ธ๋ฌธ
function ํจ์๋ช
(๋งค๊ฐ๋ณ์) {
ํจ์ ๋ชธ์ฒด
return ๋ฐํ๊ฐ;
}
// ์ต๋ช
ํจ์ ํํ์(anonymous function expression)
var ๋ณ์๋ช
1 = function (๋งค๊ฐ๋ณ์) {
ํจ์ ๋ชธ์ฒด
return ๋ฐํ๊ฐ;
}
console.log(๋ณ์๋ช
1(์ธ์)); // ๋ฐํ๊ฐ
// ๊ธฐ๋ช
ํจ์ ํํ์(named function expression)
var ๋ณ์๋ช
2 = function ๊ธฐ๋ช
ํจ์๋ช
(๋งค๊ฐ๋ณ์) {
ํจ์ ๋ชธ์ฒด
return ๋ฐํ๊ฐ;
}
console.log(๊ธฐ๋ช
ํจ์๋ช
(์ธ์)); // ReferenceError: ๊ธฐ๋ช
ํจ์๋ช
is not defined
console.log(๋ณ์๋ช
2(์ธ์)); // ๋ฐํ๊ฐ
// ํจ์ ํธ์ถ์ ํจ์๋ช
์ด ์๋๋ผ ํจ์๋ฅผ ๊ฐ๋ฆฌํค๋ ๋ณ์๋ช
์ ์ฌ์ฉํด์ผํ๋ค.
ํจ์ ์ ์ ๋ฐฉ์์ ๋ฐ๋ผ ๋์ ๋ฐฉ์์ ์ฝ๊ฐ์ ์ฐจ์ด๊ฐ ์๋ค.
// ํจ์ ์ ์ธ๋ฌธ์ผ๋ก ํจ์๊ฐ ์ ์๋๊ธฐ ์ด์ ์ ํจ์ ํธ์ถ ๊ฐ๋ฅ
// ํจ์ ์ ์ธ์ ์์น์ ์๊ณผ๋์ด ์ฝ๋ ๋ด ์ด๋๋ ์ง ํธ์ถ์ด ๊ฐ๋ฅ
// ํจ์ ํธ์ด์คํ
var ๋ณ์๋ช
= ํจ์๋ช
(์ธ์); // ๋ฐํ๊ฐ
// ํจ์ ์ ์ธ๋ฌธ
function ํจ์๋ช
(๋งค๊ฐ๋ณ์) {
ํจ์ ๋ชธ์ฒด
return ๋ฐํ๊ฐ;
}
์๋ฐ์คํฌ๋ฆฝํธ๋ ES6์ let, const๋ฅผ ํฌํจํ์ฌ ๋ชจ๋ ์ ์ธ(var, let, const, function, function*, class)์ ํธ์ด์คํ ํ๋ค.
undefined
๋ก ์ด๊ธฐํ ๋๊ณ ์ค์ ๊ฐ์ ํ ๋น์ ํ ๋น๋ฌธ์์ ์ด๋ฃจ์ด์งundefined
๋ก ์ด๊ธฐํ// ํจ์ ์ ์ธ๋ฌธ
function ํจ์๋ช
(๋งค๊ฐ๋ณ์1, ๋งค๊ฐ๋ณ์2) {
console.log(๋งค๊ฐ๋ณ์1, ๋งค๊ฐ๋ณ์2);
}
ํจ์๋ช
(์ธ์a, ์ธ์b);
// ์ธ์a๋ ๋งค๊ฐ๋ณ์1์ ์ ๋ฌ
// ์ธ์b๋ ๋งค๊ฐ๋ณ์2์ ์ ๋ฌ
// (์ธ์a, ์ธ์b)์ด ๋ฐํ๋์ด ์ถ๋ ฅ๋จ
// ์ถ๋ ฅ ๊ฒฐ๊ณผ : ์ธ์a ์ธ์b
ํจ์๋ช
(์ธ์c);
// ๋ ๋ฒ์งธ ์ธ์๊ฐ ์ ๋ฌ๋์ง ์์ ๊ฒฝ์ฐ,
// ์ถ๋ ฅ ๊ฒฐ๊ณผ : ์ธ์c undefined
ํจ์๋ ์์ ์ ํธ์ถํ ์ฝ๋์๊ฒ ์ํํ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํ(return)ํ ์ ์๋ค.
return
ํค์๋๋ ํจ์๋ฅผ ํธ์ถํ ์ฝ๋์๊ฒ ๊ฐ์ ๋ฐํํ ๋ ์ฌ์ฉundefined
๋ฅผ ๋ฐํreturn
ํค์๋๋ฅผ ๋ง๋๋ฉด ํจ์์ ์คํ์ ์ค๋จreturn
ํค์๋ ์ดํ์ ๋ค๋ฅธ ๊ตฌ๋ฌธ์ด ์กด์ฌํ๋ค๋ฉด ๊ทธ ๊ตฌ๋ฌธ์ ์คํ๋์ง ์๋๋ค.์ฐธ๊ณ ๋งํฌ