[Js] κ°μΌλ‘μμ ν¨μμ μ½λ°± | μ½λ°± | λΉλκΈ° μ²λ¦¬
- -
ν΄λΉ ν¬μ€ν μ "μνμ½λ©"μ μ΄κ³ μ λμ κ°μλ₯Ό κΈ°λ°μΌλ‘ μ¬λ¦° κ²μκΈ μ λλ€.
μμ μ μΈ μ©λκ° μλ, κ°μΈ κ³΅λΆ μ 리 λͺ©μ μΌλ‘ μ¬λ¦¬λ κΈμμ 미리 μ립λλ€.
κ°μΌλ‘μμ ν¨μ
JavaScriptμμλ ν¨μλ κ°μ²΄λ€. λ€μ λ§ν΄μ μΌμ’ μ κ°μ΄λ€.
(μ΄λ ν κ°μ λ³μμ λ΄μ μ μλ€. ν¨μ λν λ³μμ λ΄μ μ μλ€. κ·Έλ κΈ° λλ¬Έμ ν¨μλ μΌμ’ μ κ°μ΄ λλκ²μ΄λ€.)
κ±°μ λͺ¨λ μΈμ΄κ° ν¨μλ₯Ό κ°μ§κ³ μλ€. JavaScriptμ ν¨μκ° λ€λ₯Έ μΈμ΄μ ν¨μμ λ€λ₯Έ μ μ ν¨μκ° κ°μ΄ λ μ μλ€λ μ μ΄λ€.
λ€μ μμ λ₯Ό ν΅ν΄μ κ·Έ μλ―Έλ₯Ό μμ보μ.
<script>
function a(){}
//var a = function() {}
</script>
μ λ μ½λλ κ°μ μλ―Έμ΄λ€.
μμ μμ μμ ν¨μ aλ λ³μ aμ λ΄κ²¨μ§ κ°μ΄λ€. λν ν¨μλ κ°μ²΄μ κ°μΌλ‘ ν¬ν¨λ μ μλ€.
<script>
a = {
b:function(){
}
};
</script>
bλ μΌμ’ μ λ³μμ μν μ νλ κ²μ΄λ€. μ΄λ° μν μ νλ κ²μ μμ±(property)λΌκ³ νλ€.
bλ key , κ·Έμ κ°μ functionμ΄λΌκ³ ν λ,μ΄λ¬ν function μ¦ ν¨μλ₯Ό λ©μλ λΌκ³ νλ κ²μ΄λ€.
μΌλ°μ μΌλ‘ μ μλ ν¨μλ 'ν¨μ'λΌ νκ³ , μ΄λ κ² μμ κ°μ΄ κ°μ²΄μ μμ± κ°μΌλ‘ λ΄κ²¨μ§ ν¨μλ₯Ό "λ©μλ(method)"λΌκ³ νλ€.
<script>
function cal(func, num){
return func(num)
}
function increase(num){
return num+1
}
function decrease(num){
return num-1
}
alert(cal(increase, 1));
alert(cal(decrease, 1));
</script>
11νμ μ€ννλ©΄ ν¨μ increaseμ κ° 1μ΄ ν¨μ calμ μΈμλ‘ μ λ¬λλ€.
ν¨μ calμ 첫λ²μ§Έ μΈμλ‘ μ λ¬λ increaseλ₯Ό μ€ννλλ° μ΄ λ λλ²μ§Έ μΈμμ κ°μ΄ 1μ μΈμλ‘ μ λ¬νλ€.
ν¨μ increaseμ κ³μ°λ κ²°κ³Όλ₯Ό 리ν΄νκ³ calμ λ€μ κ·Έ κ°μ 리ν΄νλ€.
μ λΆλΆμ΄ μ΄ν΄κ° μ μλλ€λ©΄ μλ μμμ μ°Έκ³ νκΈΈ λ°λλ€.
www.youtube.com/watch?v=zGBkPTwydeg&feature=emb_logo
ν¨μλ ν¨μμ λ¦¬ν΄ κ°μΌλ‘λ μ¬μ©ν μ μλ€.
<!DOCTYPE html>
<html>
<head>
<title>haha</title>
</head>
<body>
<script type="text/javascript">
function cal(mode){ //modeλ calν¨μλ₯Ό νΈμΆν λ ν¨κ» κ° μ λ¬ ν΄μ€μΌν¨
var funcs = {//funcsλ κ°μ²΄
'plus' : function(left, right){return left + right},
'minus' : function(left, right){return left - right}
}
return funcs[mode];
}
alert(cal('plus')(2,1)); // calν¨μμ μΈμ plusλ₯Ό μ£Όκ³ , κ·Έ μμ κ°μ²΄ μ€ plusμ ν¨μλ₯Ό νΈμΆ -> return 2+1 = 3
alert(cal('minus')(2,1)); // λ§μ°¬κ°μ§μ. minusμ΄λ―λ‘ 2-1 =1 μΆλ ₯
</script>
</body>
</html>
λΉμ°ν λ°°μ΄μ κ°μΌλ‘λ μ¬μ©ν μ μλ€.
<script>
var process = [
function(input){ return input + 10;},
function(input){ return input * input;},
function(input){ return input / 2;}
];
var input = 1;
for(var i = 0; i < process.length; i++){
input = process[i](input);
}
alert(input);
</script>
"λ³μ, 맀κ°λ³μ, λ¦¬ν΄ κ° λ±μ μ©λλ‘ μ¬μ©λλ κ²μ νλ‘κ·Έλ¨μμλ first-class citizen(object ..)λΌκ³ λΆλ₯Έλ€."
μ½λ°±
κ°μΌλ‘μ¨μ ν¨μμ λ°μ ν κ΄κ³κ° μλ€.
μ²λ¦¬μ μμ
κ°μΌλ‘ μ¬μ©λ μ μλ νΉμ±μ μ΄μ©νλ©΄ ν¨μμ μΈμλ‘ ν¨μλ‘ μ λ¬ν μ μλ€.
κ°μΌλ‘ μ λ¬λ ν¨μλ νΈμΆλ μ μκΈ° λλ¬Έμ μ΄λ₯Ό μ΄μ©νλ©΄ ν¨μμ λμμ μμ ν λ°κΏ μ μλ€.
μΈμλ‘ μ λ¬λ ν¨μ sortNumberμ ꡬνμ λ°λΌμ sortμ λμλ°©λ²μ΄ μμ ν λ°λκ² λλ€.
μλ μ½λλ₯Όλ³΄λ©΄, μλ κΈ°λ³Έμ μΌλ‘ λμνλ sortλ λ¬Έμμ΄λ‘ λΉκ΅κ° λ κ²μΈμ§ μ΄μν μμλλ‘ μΆλ ₯μ΄ λλ€.
μ λλ‘ μ λ ¬μ νκΈ° μν΄ μ½λλ₯Ό λ°κΎΈμ΄ 보면 μλμ κ°λ€.
<!DOCTYPE html>
<html>
<head>
<title>haha</title>
</head>
<body>
<script type="text/javascript">
var numbers = [20,10,9,8,7,6,5,4,3,2,1];
var sortfunc = function(a,b){//a,bλ μ μ«μλ₯Ό λΉκ΅ν μΈμ.
if(a > b){
return 1;
}else if(a < b){
return -1;
}else {
return 0;
}
}
console.log(numbers.sort(sortfunc));
</script>
</body>
</html>
κ²°κ³Όλ μλμ κ°λ€.
ifλ¬ΈμΌλ‘ returnκ°μ κ΅¬λΆ μ§μ΄ μ£Όλ κ²λ§μΌλ‘λ sort()κ° κΈ°μ€μ λ°λΌ κ°μ λΉκ΅ν΄μ£Όλ κ²μ΄λ€.
κ·Έλ λ€λ©΄ λμ± κ°κ²°ν μ½λλ₯Ό λ§λ€μ΄ 보μ!
<!DOCTYPE html>
<html>
<head>
<title>haha</title>
</head>
<body>
<script type="text/javascript">
var numbers = [20,10,9,8,7,6,5,4,3,2,1];
var sortfunc = function(a,b){//a,bλ μ μ«μλ₯Ό λΉκ΅ν μΈμ.
return a - b; //μ λ ¬μ μμμΌλ‘ νκ³ μΆλ€λ©΄ b-aλ₯Ό ν΄μ£Όλ©΄ λλ€.
}
console.log(numbers.sort(sortfunc));
</script>
</body>
</html>
μ«μκ° μλλΌ λ¬ΈμλΌ νλλΌλ, ν¨μλ‘ μ μ λλ μΈμλ€μ κ°μμ μ λ ¬μ κΈ°μ€μ λ°λΌ μμ,μμ,0μΌλ‘ λλμ΄μ£Όλ©΄
μλ°μ€ν¬λ¦½νΈλ κ·Έ κΈ°μ€μ λ°λΌ μ λ ¬μ ν μ μλ€.
μ λ§₯λ½μμ sortfuncλΌλ ν¨μκ° λ°λ‘ "μ½λ°±ν¨μ"κ° λλ κ²μ΄λ€.
κ°μΌλ‘μ¨ ν¨μλ₯Ό μ¬μ©ν μ μκΈ° λλ¬Έμ κ° μ λ¬λ‘ μΈν΄ μμ ν κ·Έ κ°μ λ°κΏ μ μλ κ²μ΄ λ°λ‘ "μ½λ°±"μ΄λ€.
μ½λ°±μ΄ κ°λ₯ν κ²μ μλ°μ€ν¬λ¦½νΈμ ν¨μκ° "κ°"μ΄κΈ° λλ¬Έμ κ°λ₯ν κ²μ΄λ€.
μ½λ°±μ λΉλκΈ° μ²λ¦¬μλ λ§€μ° μ μ©νκ² μ¬μ©λλ€.
λΉλκΈ° μ²λ¦¬
μκ°μ΄ μ€λ걸리λ μμ μ΄ μμ λ μ΄ μμ μ΄ μλ£λ νμ μ²λ¦¬ν΄μΌ ν μΌμ
μ½λ°±μΌλ‘ μ§μ νλ©΄ ν΄λΉ μμ μ΄ λλ¬μ λ 미리 λ±λ‘ν μμ μ μ€ννλλ‘ ν μ μλ€.
μλ°μ€ν¬λ¦½νΈμμ μ΄λ¬ν λΉλκΈ°μ²λ¦¬μ μ¬μ©λλ κ²μ AjaxλΌκ³ νλ€.(asynchronous javascript and xml)
μ΄ κΈ°μ λ‘ μΈν΄, μΉμ λ¨μν λ¬Έμμμ λ²μ΄λμ λ€μν λμ(ν΄λ¦ μ μ μΉ νμ΄μ§κ° μμ±λλ κ²..)μ ν μ μλ μ ν리μΌμ΄μ μΌλ‘ λ°μ ν μ μμλ€.
λ€μ μ½λλ μΌλ°μ μΈ νκ²½μμλ μλνμ§ μκ³ μλ² νκ²½μμλ§ λμνλ€. λμμμ μ°Έκ³ νλ€.
datasource.json.js
<script>
{"title":"JavaScript","author":"egoing"}
</script>
demo1.html
<!DOCTYPE html>
<html>
<head>
<script src="//code.jquery.com/jquery-1.11.0.min.js"></script>
</head>
<body>
<script type="text/javascript">
$.get('./datasource.json.js', function(result){
console.log(result);
}, 'json');
</script>
</body>
</html>
νμ¬ κ°μλ₯Ό λ£λ λμμλ jsonκ³Ό ajax jqueryλ±μ 100% μ΄ν΄ν νμ μλ€.
www.youtube.com/watch?v=NDFjwybbong&feature=emb_logo
'Languages > Java Script' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Js] arguments | λ°°μ΄ | javascript λ°°μ΄ | 맀κ°λ³μ (0) | 2021.02.04 |
---|---|
[Js] ν΄λ‘μ | μΈλΆν¨μ, λ΄λΆν¨μ (0) | 2021.02.04 |
[Js] ν¨μμ§ν₯ | javascript ν¨μ | μ ν¨λ²μ | μ§μλ³μ μ μλ³μ (0) | 2021.02.04 |
[Js] μ κ· ννμ | μ»΄νμΌ? | μ κ·ννμ 리ν°λ΄ (0) | 2021.02.04 |
λΉμ μ΄ μ’μν λ§ν μ½ν μΈ
μμ€ν κ³΅κ° κ°μ¬ν©λλ€