-
μλ°μ€ν¬λ¦½νΈ ν¨μ μ μΈ, μ½λ°±, νΈμΆ μ€μΌμ€λ§JavaScript 2020. 9. 7. 21:12
π― μλ°μ€ν¬λ¦½νΈ ν¨μμ μΈ λ°©λ², κ³ κΈν¨μ, μ νΈλ¦¬ν° ν¨μλ₯Ό μμλ³Έλ€.
ν¨μμ μ μ λ°©λ² 3κ°μ§
μ μΈμ μ μ λ°©λ²(μ΄λ¦μλ ν¨μ)
ν¨μ μ μΈμμ μ½λ μμ λ μμ μΈ κ΅¬λ¬Έ ννλ‘ μ‘΄μ¬νλ©° ν¨μλͺ μ λ°λμ μ μν΄μΌ νλ€.
-
λ§€κ° λ³μκ° μλ κ²½μ°
function func1() { alert("javascript") }
-
λ§€κ° λ³μκ° μλ κ²½μ°
function func2(name) { document.write(name + "λ μλ νμΈμ."); }
-
λ¦¬ν΄ κ°μ΄ μλ κ²½μ°
function func3(value) { var ans; ans = value + 200; return ans; }
ν¨μ μμ± μμ
func4(); function func4(){ ... }
μ μΈμ ν¨μλ νλ‘κ·Έλ¨ μ»΄νμΌ λ¨κ³μμ μμ±λκΈ° λλ¬Έμ ν¨μ μ μ μ μ νΈμΆμ΄ κ°λ₯νλ€.
λ°λΌμ func4 ν¨μλ μ€ν¬λ¦½νΈ λ΄ μ΄λμλ νΈμΆν μ μλ€.
ν¨μ리ν°λ΄ (μ΅λͺ ν¨μ)
var λ³μλͺ = function(args,args){ statement; retrun ; }
ν¨μ ννμμ μλ°μ μλ νΉλ³ν κ°λ μ΄λ€. μλ°μ€ν¬λ¦½νΈλ ν¨μλ₯Ό κ°μΌλ‘ μ·¨κΈνκΈ° λλ¬Έμ λ³μμ ν λΉν μ μλ€. μ΄ λ ν¨μλ μ΄λ¦μ΄ μκΈ° λλ¬Έμ λ³μμ ν λΉνκ² λλ©΄ ν¨μλͺ μ΄ λ³μλͺ μ΄ λλ€. ν¨μλ νλ‘κ·Έλ¨μ μ€ν λ¨κ³μμ μμ±λκΈ° λλ¬Έμ ν¨μ μ μ μ μ νΈμΆν μ μλ€.
Function μμ±μ μ΄μ©
var λ³μλͺ = new Function("x","y","return x+y");
λ€λ₯Έ κ°μ²΄(μΈμ€ν΄μ€)λ₯Ό μμ±ν μ μλ μμ±μ ν¨μμ΄λ€. Fλ λλ¬Έμλ‘ μμ±νλ©° μ¬λ¬ κ°μ μΈμλ₯Ό μ§μ ν μ μλ€. λ§μ§λ§ μΈμ μμΉμλ ν¨μμμ μ€νλ μ½λλ₯Ό λͺ μνλ€.
맀κ°λ³μμ μΈμ
ν¨μμμ μ μλ 맀κ°λ³μμ νΈμΆνλ μΈμμ κ°μκ° μλ‘ λ¬λΌλ νΈμΆμ΄ κ°λ₯νλ€. μλ°μ€ν¬λ¦½νΈλ λ©μλ νΈμΆμ νλΌλ―Έν° κ°μλ₯Ό 체ν¬νμ§ μλλ€.
function one( x , y , z){ for( var i = 0 ; i < arguments.length ; i++){ console.log( arguments[i]); } } one(10,20); one(10,20,30); one(10,20,30,40);
arguments
λ ν¨μ λ΄μ μλμΌλ‘ μμ±λλ λ΄μ₯λ³μλ€. λ΄μ₯λ³μ argumentsλ νΈμΆ μ λμ΄μ€λ νλΌλ―Έν°λ₯Ό λ°°μ΄λ‘ κ΄λ¦¬νλ€. λ°λΌμ νλΌλ―Έν° κ°μλ₯Όargument.length()
λ‘ μ»μ μ μμΌλ©°argument[index]
λ₯Ό ν΅ν΄ λ°°μ΄ μμμ μ κ·Όν μ μλ€.function makeFactorialFunc(){ return function(x){ if( x <= 1) return 1; return x * arguments.callee( x - 1 );//νμ¬ μ€νν¨μ } } var result = makeFactorialFunc()(5); console.log( result ); // 120 ( 5 * 4 * 3 * 2 * 1 )
arguments.callee()
μμ±μ νμ¬ μ€νλκ³ μλ ν¨μλ₯Ό λνλΈλ€. μ¬κ· νΈμΆμ(ν¨μ aκ° λλ λ λ€μ aλ₯Ό νΈμΆν¨) μ μ©νκ² μ¬μ©ν μ μλ€.ν¨μ μ°μ΅
var aaa = function(){ console.log("aaaνΈμΆ"); return 100; }; var xxx1 = aaa; var xxx2 = aaa(); console.log(xxx1()); console.log(xxx1); console.log(xxx2);
μλ°μ€ν¬λ¦½νΈλ κ΄νΈκ° μμ΄μΌ ν¨μλ₯Ό νΈμΆνλ€. κ΄νΈλ₯Ό λΆμ΄μ§ μμ xxx1μ ν¨μ μ체λ₯Ό μΆλ ₯νλ€.
function ttt(){ console.log("tttνΈμΆ"); return eee; } var eee = function() { console.log("eeeνΈμΆ"); }; var k = ttt(); k();
μ΄ ν¨μλ κ±°κΎΈλ‘ λ°λΌκ°λ€. kλ³μλ₯Ό ν¨μλ‘ νΈμΆνκ³ kμ λ΄κ²¨μλ tttν¨μλ₯Ό νΈμΆνκ³ ttt ν¨μλ₯Ό μ€ννλ€. 리ν΄μ eeeλ‘ νκΈ°λλ¬Έμ eeeμ λ΄κ²¨μλ μ΅λͺ ν¨μλ μ€νλκ³ ν¨μλ₯Ό μ’ λ£νλ€.
function kkk(x){ console.log("kkkνΈμΆ", x); x(); } kkk(function(){ console.log("ppp νΈμΆ"); });
ν¨μλ₯Ό νΈμΆνλ©΄μ μΈμλ‘ ν¨μλ₯Ό μ λ¬νλ€. kkk ν¨μλ νλΌλ―Έν°μ μ΅λͺ ν¨μλ₯Ό μ λ¬λ°κ³ μ½μμ λ©μΈμ§μ μ΅λͺ ν¨μ μ 체λ₯Ό μΆλ ₯νλ€. λ§μ§λ§μΌλ‘ μ΅λͺ ν¨μλ₯Ό νΈμΆν΄μ μ½μμ ppp λ©μΈμ§κ° μΆλ ₯λλ€.
μ¦μμ€νν¨μ
(function (){ console.log("μ¦μνΈμΆν¨μ"); })();
ν¨μ μ 체λ₯Ό κ΄νΈλ‘ κ°μΌ λ€ λ°λ‘ νΈμΆκ΄νΈλ₯Ό λΆμΈλ€.
κ³ κΈν¨μ νν
μ½λ°±ν¨μ
function call(info){ info(); } var callback = function(){ console.log("callback"); } call(callback)
ν¨μλ₯Ό ν¨μμ μΈμλ‘ μ λ¬νκ³ νμν λ μΈμλ‘ μ λ¬ν ν¨μλ₯Ό λμ€μ νΈμΆνλ κ²μ μ½λ°±ν¨μλΌκ³ λ§νλ€. μ€νν ν¨μ(callback())λ₯Ό λ§λ€μ΄λκ³ νμν λ νΈλ¦¬κ±° ν¨μ(call())μκ² μΈμλ‘ μ λ¬ν΄μ νΈμΆνλ€.
μ€μ²©ν¨μ
var a= function(arg) { var b= function(n) { return n*100; } return b(arg); } //μΈλΆμμ μ κ·Ό λ°©λ² var result = a(2); console.log(result);
νΉμ ν¨μμμλ§ μ¬μ©νλ κΈ°λ₯μΌ κ²½μ° λ΄λΆμ μ μν΄μ μ¬μ©ν μ μλ€. a λ΄λΆμ μλ b ν¨μλ μΈλΆμμ μ κ·Όν μ μλ€. μΈλΆμμ μ κ·ΌνκΈ° μν΄μ a ν¨μλ₯Ό ν¨κ» μ¬μ©ν΄μΌ νλ€. λ¨Όμ a ν¨μλ₯Ό νΈμΆνκ³ μΈμλ₯Ό μ λ¬νλ€. a ν¨μλ 리ν΄κ²°κ³Όλ‘ bν¨μλ₯Ό νΈμΆνκ³ λ°μμ¨ μΈμλ₯Ό κ°μ΄ μ λ¬νλ€. νΈμΆλ b ν¨μλ λ°μμ¨ μΈμμ 100μ κ³±ν κ°μ 리ν΄νλ€. μ΄ κ²°κ³Ό 200μ result λ³μμ λ΄κΈ΄λ€.
var k = function(){ var d = 10; var k2 = function(){ return d * 2; } return k2(); } console.log("k() νΈμΆ : " + k() ); //20
μ€μ²©ν¨μλ λ΄λΆμ μ μλ λ³μμ μ κ·Όν μ μλ€. kν¨μ μΈλΆμμλ d λ³μμ μ κ·Όν μ μμ§λ§ k2 ν¨μλ μ κ·Όν μ μλ€. κ°μ²΄μ§ν₯μ μλν κΈ°λ²μ μ μ©ν μ μλ€.
μ νΈλ¦¬ν° ν¨μ
-
alert ν¨μ : κ²½κ³ μ°½μ νλ©΄μ λμΈ λ μ¬μ©νλ€.
alert('hi!');
-
setTimeout ν¨μ : μΌμ μκ°μ ν¨μλ₯Ό λ¨ ν λ² μ€ννλ€.
setTimeout(function(){ alert("bbb"); },3000);
3μ΄ νμ ν¨μλ₯Ό ν λ² μ€ννλ€.
-
setInterval ν¨μ : μΌμ μκ°λ§λ€ λ°λ³΅ν΄μ ν¨μλ₯Ό μ€ννλ€.
var kkk= setInterval(function(){ console.log("setInterval") },3000); setTimeout(function(){//10μ΄λ€μ interval μμ clearInterval(kkk); },10000);
kkk ν¨μλ 3μ΄λ§λ€ λ°λ³΅ν΄μ ν¨μλ₯Ό μ€ννλ€.
clearInterval()
ν¨μλ λ°λ³΅ν¨μλ₯Ό μ§μμ€λ€. -
parseInt, parseFloat ν¨μ : λ¬Έμμ΄μ μ«μλ‘, μ€μλ‘ λ³ννλ€.
var num = parseInt("123");
π NEXT : μλ°μ€ν¬λ¦½νΈ built-in κ°μ²΄ 곡λΆνκΈ°
λ°μν'JavaScript' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
μλ°μ€ν¬λ¦½νΈ μ΄λ²€νΈ νΈλ€λ§ μ°μ΅2 (0) 2020.09.13 μλ°μ€ν¬λ¦½νΈ μ΄λ²€νΈ νΈλ€λ§ μ°μ΅1 (0) 2020.09.11 μλ°μ€ν¬λ¦½νΈ form κ°μ²΄, μ΄λ²€νΈ νΈλ€λ§ (3) 2020.09.10 μλ°μ€ν¬λ¦½νΈ DOM κ°μ²΄ μ μ΄ (0) 2020.09.09 μλ°μ€ν¬λ¦½νΈ Built-In λ΄μ₯κ°μ²΄ (0) 2020.09.08 -