Baseline Widely available
function
í¤ìëë ì´ë¤ ííì(expression) ë´ìì í¨ì를 ì ìíë ë° ì¬ì©ë ì ììµëë¤.
ëí Function ìì±ìì í¨ì ì ì¸(function declaration)ì ì´ì©í´ í¨ì를 ì ìí ìë ììµëë¤.
ìëí´ ë³´ê¸°const getRectArea = function (width, height) {
return width * height;
};
console.log(getRectArea(3, 4));
// Expected output: 12
구문
var myFunction = function [name]([param1[, param2[, ..., paramN]]]) { statements };
ES2015ìì íì´í í¨ì(arrow functions)를 ì¬ì©í ìë ììµëë¤.
매ê°ë³ìname
í¨ì ì´ë¦. í¨ìê° ì´ë¦ ìë(anonymous) í¨ìì¸ ê²½ì°, ìëµë ì ìì. ì´ í¨ì ì´ë¦ì í¨ìì ëª¸íµ ë´ììë§ ì¬ì©í ì ììµëë¤.
paramN
í¨ìë¡ ì ë¬ëë ì¸ì(argument) ì ì´ë¦.
statements
í¨ì 몸íµì 구ì±íë 문(statement).
í¨ì ííì(function expression)ì function 문과 ë§¤ì° ë¹ì·íê³ êµ¬ë¬¸(syntax)ì´ ê±°ì ê°ìµëë¤ (ìì¸í ì¬íì function 문 참조). í¨ì ííìê³¼ function 문 ì¬ì´ì 주ì ì°¨ì´ì ì í¨ì ì´ë¦ì¼ë¡, í¨ì ííìì¼ë¡ ìµëª í¨ì를 ë§ë¤ ê²½ì° ì´ ì´ë¦ì ìëµí ì ììµëë¤. í¨ì ííìì ì ìíìë§ì ì¤íëë IIFE (ì¦ì í¸ì¶ëë í¨ì ííì)ë¡ ì¬ì©ë ì ììµëë¤. ë ìì¸í ì ë³´ë í¨ì ì¥ ì°¸ì¡°.
Function expression ëì´ì¬ë¦¬ê¸°JavaScriptìì í¨ì ííìì í¨ì ì ì¸
ê³¼ë ë¬ë¦¬ ëì´ì¬ë ¤ì§ì§ ììµëë¤. í¨ì ííìì ì ìí기 ì ìë ì¬ì©í ì ììµëë¤.
console.log(notHoisted); // undefined
//even the variable name is hoisted, the definition wasn't. so it's undefined.
notHoisted(); // TypeError: notHoisted is not a function
var notHoisted = function () {
console.log("bar");
};
ì ëª
(named) í¨ì ííì
í¨ì ëª¸íµ ì 쪽ìì íì¬ í¨ì를 ì°¸ê³ íê³ ì¶ë¤ë©´, ì ëª
í¨ì를 ìì±í´ì¼ í©ëë¤. ì´ í¨ì ì´ë¦ì í¨ìì 몸íµ(ë²ì) ìììë§ ì¬ì©í ì ììµëë¤. ì´ë¡ì¨ ë¹íì¤ arguments.callee
ìì±ì ì¬ì©íë ê²ì í¼í ìë ììµëë¤.
var math = {
factit: function factorial(n) {
console.log(n);
if (n <= 1) return 1;
return n * factorial(n - 1);
},
};
math.factit(3); //3;2;1;
í¨ìê° í ë¹ë ë³ìë name
ìì±ì ê°ì§ê²ë©ëë¤. ë¤ë¥¸ ë³ìì í ë¹ëëë¼ë ê·¸ name ìì±ì ê°ì ë³íì§ ììµëë¤. í¨ìì ì´ë¦ì´ ìëµëìë¤ë©´, name ìì±ì ê°ì ê·¸ ë³ìì ì´ë¦(ì묵ì ì´ë¦)ì´ ë ê²ì
ëë¤. í¨ìì ì´ë¦ì´ ìë¤ë©´ name ìì±ì ê°ì ê·¸ í¨ìì ì´ë¦(ëª
ìì ì´ë¦)ì´ ë ê²ì
ëë¤. ì´ë íì´í í¨ì(arrow functions)ìë ì ì©ë©ëë¤ (íì´í í¨ìë ì´ë¦ì ê°ì§ì§ ìì¼ë¯ë¡ í´ë¹ ë³ìì ì묵ì ì¸ ì´ë¦ë§ ì¤ ì ììµëë¤).
var foo = function () {};
foo.name; // "foo"
var foo2 = foo;
foo2.name; // "foo"
var bar = function baz() {};
bar.name; // "baz"
console.log(foo === foo2); // true
console.log(typeof baz); // undefined
console.log(bar === baz); // false (errors because baz == undefined)
Examples
ë¤ì ìì ë ì´ë¦ ìë í¨ì를 ì ìíê³ ê·¸ í¨ì를 x
ì í ë¹í©ëë¤. í¨ìë ì¸ìì ì ê³±ì ë°íí©ëë¤:
var x = function (y) {
return y * y;
};
callbackì¼ë¡ ë ì주 ì¬ì©ë©ëë¤:
button.addEventListener("click", function (event) {
console.log("button is clicked!");
});
ëª
ì¸ì ë¸ë¼ì°ì í¸íì± ì°¸ì¡°
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4