Javascript
-
Function ํ์
- ํจ์๋ ๊ฐ์ฒด์ด๋ค.
- ์ค๋ฒ๋ก๋ฉ์ ์๋ค.
- ๋ง์ง๋ง์ ์ ์ํ ํจ์๊ฐ ์ด์ ์ ์ ์ํ ํจ์๋ฅผ ๋ฎ์ด์์ ์ฝ๊ฒ ์ดํด ํ ์ ์๋ค.
function addSomeNumber(num){ // 1๋ฒ return num + 100; } function addSomeNumber(num){ // 2๋ฒ return num + 200; } var result = addSomeNumber(100); // 300 2๋ฒ ํธ์ถ
-
ํจ์ ์ ์ธ vs ํจ์ ํํ์ (Hoisting)
-
ํจ์ ์ ์ธ์ ์ด๋ค ์ฝ๋๋ ์คํํ๊ธฐ ์ ์ ์ด๋ฏธ ๋ชจ๋ EC์์ ์ ๊ทผํ๊ณ ์คํํ ์ ์๋ค.
Hoisting์ด๋ ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ ์ฝ๋๋ฅผ ํ๊ฐํ ๋ ์ ์ผ ๋จผ์ ํจ์ ์ ์ธ์ ์ฐพ์ ๋ค์ ์ด๋ค์ ๋งจ ์๋ก ์ฌ๋ฆฌ๋ ๊ณผ์ ์ ๋งํ๋ค.
- ํจ์ ํํ์์ ์ฝ๋ ์คํ์ด ํด๋น ์ค๊น์ง ์งํํ๊ธฐ ์ ์๋ ์ฌ์ฉํ ์ ์๋ค.
-
alert(sum(10,10));
function sum(num1,num2){ // ํจ์ ์ ์ธ
return num1 + num2;
}
alert(sum(10,10)); // error ํจ์๊ฐ ์ ์๋์ด ์์ง ์๋ค.
var sum = function (num1,num2){ // ํจ์ ํํ์
return num1 + num2;
}
-
๊ฐ์ฒ๋ผ ์ฐ๋ ํจ์
// someFunction : ํจ์๋งค๊ฐ๋ณ์, someArgument : ์ฝ๋ฐฑ ํจ์์ ๋๊ธธ ๊ฐ
function callSomeFunction(someFunction, someArgument){
return someFunction(someArgument);
}
function add10(num){
return num + 10;
}
var result = callSomeFunction(add10,10);
alert(result); // 20
function getGreeting(name){
return "Hello " + name;
}
var result2 = callSomeFunction(getGreeting,"NESOY");
alert(result2); // Hello NESOY
-
ํจ์์ ๋ด๋ถ ๊ตฌ์กฐ
- ํจ์ ๋ด๋ถ์๋ argument, this ๊ฐ์ฒด๊ฐ ์กด์ฌ
- argument์ property์ callee : ๊ฐ์ฒด์ ์์ ์์ธ ํจ์๋ฅผ ๊ฐ๋ฆฌํค๋ ํฌ์ธํฐ
- caller , callee์ ํตํด ํจ์์ ์ด๋ฆ ์ฌ์ด์ ์์กด์ฑ์ ์ ๊ฑฐ
function factorial(num){
if ( num <= 1){
return 1;
} else {
return num * argument.callee(num-1);
}
}
-
ํจ์์ ํ๋กํผํฐ์ Method
- ๋ชจ๋ ํจ์์ length, prototype์ด ์กด์ฌ
- length : ํจ์์ ๋งค๊ฐ๋ณ์ ๊ฐฏ์
- prototype : ๋ชจ๋ ์ฐธ์กฐ ํ์ ์ ์ธ์คํด์ค ๋ฉ์๋๊ฐ ์กด์ฌํ๋ ๊ณณ
- apply(), call() ํจ์ ์กด์ฌ
function sum(num1, num2){
return num1 + num2;
}
function callSum1(num1, num2){
return sum.apply(this, arguments); // arguments ๊ฐ์ฒด๋ฅผ ๋๊ธด๋ค.
}
function callSum2(num1, num2){ //ํ๋ ํ๋ ๋๊ฒจ์ฃผ์ด์ผ ํ๋ค.
return sum.call(this, num1, num2);
}
alert(callSum1(10,10)); // 10
alert(callSum2(10,10)); // 10
-
bind()๋ผ๋ ํจ์๋ฅผ ํตํด this๋ฅผ ๊ต์ฒด ํ ์ ์๋ค.
-
๋ด์ฅ๋ ์ฑ๊ธํค ๊ฐ์ฒด
-
encodeURI(), encodeURIComponent()๋ ๋ธ๋ผ์ฐ์ ์ ์ ๋ฌํ URI๋ฅผ ์ธ์ฝ๋ํ๋ ๋ฉ์๋
-
์ ํจํ URI๋ ๊ณต๋ฐฑ๋ฌธ์ ๋ฑ์ ์ผ๋ถ ํน์ ๋ฌธ์๋ฅผ ํฌํจํ ์ ์๋ค.
-
decodeURI(), decodeURIComponent()๋ ์๋ค.
์ผ๋ฐ์ ์ผ๋ก ๋งํด ๋ฒ ์ด์ค URI๋ค์ ์ถ๊ฐํ ์ฟผ๋ฆฌ์คํธ๋ง์ ์ธ์ฝ๋ํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ผ๋ฏ๋ก encodeURIComponent()๋ฅผ ํจ์ฌ ์์ฃผ ์ฐ๊ฒ ๋๋ค.
- eval() : ๋ฌธ์์ด์ ์ฝ๋๋ก ๋ณํํ์ฌ ์คํํ๋ค.
-
-
Math ๊ฐ์ฒด
- min(), max()
- random()