JavaScript

Wooney98ยท2022๋…„ 11์›” 15์ผ
1

PlayData_BackEnd

๋ชฉ๋ก ๋ณด๊ธฐ
9/33
post-thumbnail

JavaScript๋กœ ํ•  ์ˆ˜ ์žˆ๋Š” ์ผ

  • ์›น ํด๋ผ์ด์–ธํŠธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ
  • ์›น ์„œ๋ฒ„ ๊ฐœ๋ฐœ
    • Node.js๊ฐ€ ๋“ฑ์žฅํ•˜๋ฉด์„œ ์›น ์„œ๋ฒ„ ๊ฐœ๋ฐœ ๊ฐ€๋Šฅ
    • ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ์™€ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ ๋“ฑ์ด ๋ณต์žกํ•˜์ง€๋งŒ, ๋น ๋ฅด๋‹ค๋Š” ์žฅ์ 
  • ๋ชจ๋ฐ”์ผ ์–ดํ”Œ ๊ฐœ๋ฐœ
    • ํŽ˜์ด์Šค๋ถ์˜ React Native
    • Electron ๋ชจ๋“ˆ
  • DB ๊ด€๋ฆฌ

์‹๋ณ„์ž

  • ์ƒ์„ฑ์ž ํ•จ์ˆ˜์˜ ์ด๋ฆ„์€ ํ•ญ์ƒ ๋Œ€๋ฌธ์ž๋กœ ์‹œ์ž‘
  • ๋ณ€์ˆ˜, ํ•จ์ˆ˜, ์†์„ฑ, ๋ฉ”์†Œ๋“œ์˜ ์ด๋ฆ„์€ ํ•ญ์ƒ ์†Œ๋ฌธ์ž๋กœ ์‹œ์ž‘
  • ์—ฌ๋Ÿฌ ๋‹จ์–ด๋กœ ๋œ ์‹๋ณ„์ž๋Š” ๊ฐ ๋‹จ์–ด์˜ ์ฒซ ๊ธ€์ž๋ฅผ ๋Œ€๋ฌธ์ž๋กœ ํ•จ
will out // willOut
will return // willReturn
i am a boy // iAmABoy

alert('Hello World') 			// ํ•จ์ˆ˜
Array.length 					// ์†์„ฑ
input 							// ๋ณ€์ˆ˜ ๋˜๋Š” ์ƒ์ˆ˜
prompt('Message','Defstr') 		// ํ•จ์ˆ˜
Math.PI							// ์†์„ฑ
Math.abs(-273)					// ๋ฉ”์†Œ๋“œ
  • ํ…œํ”Œ๋ฆฟ ๋ฌธ์ž์—ด

ํ•จ์ˆ˜

<!-- ์ต๋ช…ํ•จ์ˆ˜ : ์ด๋ฆ„์„ ๋ถ™์ด์ง€ ์•Š๊ณ  ์ƒ์„ฑํ•œ ํ•จ์ˆ˜ -->
let ํ•จ์ˆ˜_์ด๋ฆ„ = function() {};

let ํ•จ์ˆ˜ = function(){
	console.log("ํ•จ์ˆ˜์˜ ์ฒซ ๋ฒˆ์งธ ์ค„");
    console.log("ํž˜์ˆ˜์˜ ๋‘ ๋ฒˆ์งธ ์ค„");
};
ํ•จ์ˆ˜();
console.log(ํ•จ์ˆ˜);

<!-- ์„ ์–ธ์  ํ•จ์ˆ˜ : ์ด๋ฆ„์„ ๋ถ™์—ฌ ํ•จ์ˆ˜๋ฅผ ์ƒ์„ฑ -->
function ํ•จ์ˆ˜_์ด๋ฆ„(){ }

function ํ•จ์ˆ˜() {
	console.log("ํ•จ์ˆ˜์˜ ์ฒซ ๋ฒˆ์งธ ์ค„");
    console.log("ํ•จ์ˆ˜์˜ ๋‘ ๋ฒˆ์งธ ์ค„");
}
ํ•จ์ˆ˜();
console.log(ํ•จ์ˆ˜);
 
<!-- ํ™”์‚ดํ‘œ ํ•จ์ˆ˜ : `ํ•˜๋‚˜์˜ ํ‘œํ˜„์‹์„ ๋ฆฌํ„ดํ•˜๋Š” ํ•จ์ˆ˜`๋ฅผ ๋งŒ๋“ค ๋•Œ๋Š” ์ค‘๊ด„ํ˜ธ ์ƒ๋žต ๊ฐ€๋Šฅ -->
() => { }
let ํ•จ์ˆ˜ = () => {
	console.log("ํ•จ์ˆ˜์˜ ์ฒซ ๋ฒˆ์งธ ์ค„");
    console.log("ํ•จ์ˆ˜์˜ ๋‘ ๋ฒˆ์งธ ์ค„");
};
ํ•จ์ˆ˜();
console.log(ํ•จ์ˆ˜);

์ฝœ๋ฐฑํ•จ์ˆ˜

// ์ฝœ๋ฐฑ ํ•จ์ˆ˜ - ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ ๋งŽ์ด ์‚ฌ์šฉ๋œ๋‹ค.
function aaa(callback){
		console.log('aaaํ•จ์ˆ˜ ํ˜ธ์ถœ');
		callback(600); 
	}
	
	function bbb(){
		//๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๋ฐ›์ง€ ์•Š์Œ, log๋ถ€๋ถ„์— arguments๋ฅผ ์ฐ์–ด๋ณด๋ฉด 600์ด๋ผ๋Š” ๊ฐ’์ด ๋“ค์–ด๊ฐ€ ์žˆ๋‹ค.
		//์—๋Ÿฌ๋กœ ์ฒ˜๋ฆฌํ•˜์ง€ ์•Š๋Š”๋‹ค.
		//ํ•„์š”ํ•˜๋ฉด ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ž‘๋™๋˜๋Š” ๋“ฏ ํ•˜๋‹ค.
		//๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๋„˜๊ฒจ์•ผํ•˜๋Š”๋ฐ ๋„˜๊ธฐ์ง€ ์•Š์•˜๋‹ค๋ฉด undefined๋งŒ ๋œจ๊ณ  ์‹คํ–‰์€ ์ •์ƒ์ ์œผ๋กœ ์ž‘๋™ํ•œ๋‹ค.
		console.log(arguments); //undefine
		console.log('bbbํ•จ์ˆ˜ ์‹คํ–‰');
	}
	
	aaa(bbb); //undefind
	
	//callback์ธ์ž๋กœ ํ•จ์ˆ˜๋ฅผ ๋„˜๊ฒจ ๋ฐ”๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•œ๋‹ค.
	aaa(function(data){
		console.log('์ต๋ช… ํ•จ์ˆ˜ ์‹คํ–‰'+data);
	});
    //์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ํ˜•์‹์ ์ธ ๊ฒƒ์ด๊ณ  ๋ฌด์กฐ๊ฑด ๊ฐฏ์ˆ˜๋ฅผ ๋งž์ถ”๊ฑฐ๋‚˜ ๊ทธ๋Ÿฌ์ง€ ์•Š์•„๋„์‚ฌ์šฉ์— ๋ฌด๊ด€ํ•˜๋‹ค.

JS์˜ ํ™”์‚ดํ‘œ ํ•จ์ˆ˜

<script>
	//ํ™”์‚ดํ‘œ ํ•จ์ˆ˜
	let aaa = () => { //function ํ‚ค์›Œ๋“œ๋ฅผ ์—†์• ๊ณ  ๊ด„ํ˜ธ ๋’ค์— =>๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ๋œ๋‹ค.
		console.log('aaa ํ•จ์ˆ˜ ์‹คํ–‰');
	}
	
	let bbb = (num) => { //๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ 1๊ฐœ๋ฐ–์— ์—†์„ ๋•Œ๋Š” ๊ด„ํ˜ธ() ์ƒ๋žต ๊ฐ€๋Šฅํ•˜๋‹ค.
		console.log('bbb ํ•จ์ˆ˜ ์‹คํ–‰ '+num);
	}
	
	// return์ด ํ•œ์ค„๋งŒ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ ์ค‘๊ด„ํ˜ธ์™€  return ์ƒ๋žต ๊ฐ€๋Šฅ
	let ccc = num => "ccc ํ•จ์ˆ˜ ์‹คํ–‰"+num; //์—ฌ๊ธฐ์„œ num์€ ๋งค๊ฐœ๋ณ€์ˆ˜์ด๋‹ค.
	
	
	aaa();
	bbb(300);
	
	let resultStr = ccc(200);
	console.log(resultStr);
</script>

<button>btn1</button> | <button>btn2</button>
<script>
	var btns = document.querySelectorAll('button');
	console.dir(btns);
	
	// ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ 1๊ฐœ์ผ๋•Œ ๊ด„ํ˜ธ ์ƒ๋žต ๊ฐ€๋Šฅ
    // ํ™”์‚ดํ‘œ ํ•จ์ˆ˜๋Š” ์ผ๋ฐ˜ function๊ณผ this๊ฐ€ ๋‹ค๋ฅด๋‹ค.
    
	// source๋ฅผ ๋ณด๊ณ  ์‹ถ์œผ๋ฉด ์ผ๋ฐ˜function์„ ์‚ฌ์šฉ.
	btns[0].onclick = function(){
		console.log(this) //์ด๋ฒคํŠธ ๋ฐœ์ƒ source ์ž์ฒด๊ฐ€ this๊ฐ€ ๋˜์–ด ์ถœ๋ ฅ๋จ
	}
	
	btns[1].onclick = () => {
		//ํ•จ์ˆ˜ ์ƒ์„ฑ ์‹œ์ ์˜ window(๋ฌธ์„œ)๊ฐ€ this๊ฐ€ ๋œ๋‹ค.
		console.log(this) //window๊ฐ€ ์ถœ๋ ฅ๋จ. ํ™”์‚ดํ‘œ ํ•จ์ˆ˜๋Š” ์‚ฌ์šฉ์ด ๋  ๋•Œ ๋ฐœ์ƒํ•˜๋Š” ์‹œ์ ์˜ ๊ฐ์ฒด๊ฐ€ window๊ฐ€ ๋œ๋‹ค.
	}
</script>

JS์˜ ํด๋กœ์ €

  • ์–ด๋–ค ํ•จ์ˆ˜๊ฐ€ ์ž์‹ ์˜ ๋‚ด๋ถ€๊ฐ€ ์•„๋‹Œ ์™ธ๋ถ€์—์„œ ์„ ์–ธ๋œ ๋ณ€์ˆ˜์— ์ ‘๊ทผํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธ
//ํ•จ์ˆ˜์—์„œ return์€ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ณ  ์ข…๋ฃŒํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.
	//return์— ํ•จ์ˆ˜๋ฅผ ์ง€์ •ํ•˜์—ฌ ์›ํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ๋„ ๊ฐ€๋Šฅํ•˜๋‹ค.
	function aaa(){		
		return(function(){
			console.log('aaa์˜ ๋‚ด๋ถ€ ํ•จ์ˆ˜');
		});
	}
	
	//์ด๋ ‡๊ฒŒ returnํ•˜๋Š” ํ•จ์ˆ˜์— ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๋„ฃ๋Š” ๊ฒƒ๋„ ๊ฐ€๋Šฅ
	function bbb(){		
		return(function(num){
			console.log('bbb์˜ ๋‚ด๋ถ€ ํ•จ์ˆ˜ '+num);
		});
	}
	
	
	//ํ•จ์ˆ˜์— ๋งค๊ฐœ๋ณ€์ˆ˜์™€ returnํ•˜๋Š” ๊ณณ์— ๋งค๊ฐœ๋ณ€์ˆ˜ ๋„ฃ๊ธฐ๋„ ๊ฐ€๋Šฅ
	function ccc(cNum){		
		return(function(num){
			console.log('ccc์˜ ๋‚ด๋ถ€ ํ•จ์ˆ˜ '+(cNum+num));
		});
	}
    
	//ํด๋กœ์ €
	function ddd(dNum){
		var data = "hello";
		return(function(num){
				console.log(data + ' ddd์˜ ๋‚ด๋ถ€ ํ•จ์ˆ˜ '+(dNum+num))
		});
	}
	
	//๋ณ€์ˆ˜ ์„ ์–ธํ•˜๋ฉด์„œ ํ•จ์ˆ˜๋ฅผ ํ• ๋‹นํ•  ๋•Œ ๋“ค์–ด๊ฐ€๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ํ•จ์ˆ˜ ์„ ์–ธ๋ถ€์— ๋“ค์–ด๊ฐ€๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜
	//ํ•จ์ˆ˜ ํƒ€์ž… ๋ณ€์ˆ˜๋ฅผ ์‹คํ–‰ํ•˜๋ฉด์„œ ๋“ค์–ด๊ฐ€๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” return ์„ ์–ธ๋ถ€์— ๋“ค์–ด๊ฐ€๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜์ด๋‹ค.
	var fn = aaa();
	fn();
	var fn1 = bbb(); 
	fn1(100);
	var fn2 = ccc(100); //์—ฌ๊ธฐ๋Š” cNum์— ๋“ค์–ด๊ฐ€๋Š” ๊ฐ’
	fn2(30); //์—ฌ๊ธฐ๋Š” return function num์— ๋“ค์–ด๊ฐ€๋Š” ๊ฐ’
	var fn3 = ddd(120);
	fn3(50);

ํ˜ธ์ด์ŠคํŒ…

https://velog.io/@swson777/TIL-var-const-let-wifwxcyq

<script>
    // ๋Œ์–ด์˜ฌ๋ฆผ ๋ฌธ์ œ - ํ˜ธ์ด์ŠคํŒ…
    var a =10;
    function aaa() {
				//var a; 
        console.log('aaa .... '+a);
        var a = 100;
    }

    aaa();
</script>

๊ฐ์ฒด

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<!--  -->
<script>
var name1 = "๊น€๊ธธ๋™";
var name2 = "์ด๊ธธ๋™";
var name3 = "๋ฐ•๊ธธ๋™";
var name4 = "์ตœ๊ธธ๋™";
var name5 = "๊ฐ•๊ธธ๋™";

for(var i=1; i<=5; i++) {   
   //console.log(this['name' + i]);
   console.log(window['name' + i]);
}

var obj = {
   name : 'new Object',
   arr0 : ['์˜ค์ง•์–ด','๊ผด๋šœ๊ธฐ','๋Œ€๊ตฌ','๋ช…ํƒœ','๊ฑฐ๋ถ์ด'],
   arr1 : ['์˜ค์ง•์–ด','๊ผด๋šœ๊ธฐ','๋Œ€๊ตฌ','๋…ธ๊ฐ€๋ฆฌ','๊ฑฐ๋ถ์ด'],
   arr2 : ['์˜ค์ง•์–ด','๊ผด๋šœ๊ธฐ','๋Œ€๊ตฌ','์ƒ์–ด','๊ฑฐ๋ถ์ด'],
   200 : '์ด๋ฐฑ',
   print : function() {
      console.log(`${this.name}์˜ 200์€ ${this[200]}`)
   }
}

obj.print();
obj['print']()

console.log(obj['200']);
console.log(obj['name']);

obj2 = {}; 

obj2[1] = 'aaa';
console.log(obj2[1])

for(var i=0; i<3; i++)
   console.log(obj['arr'+i][3]);
  //๋ณ€์ˆ˜๋ช…์ด arr+i์ธ ๊ฐ’์„ ๊ฐ€์ ธ์˜จ๋‹ค. ์ด๋ ‡๊ฒŒ ๋ฌธ์ž์—ด๋กœ ๋ณ€์ˆ˜๋ช…์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

</script>

</body>
</html>

์ฒจ์–ธ : https://velog.io/@minidoo/%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8-%EC%BD%9C%EB%B0%B1-%ED%95%A8%EC%88%98Callback-Function

profile
๐Ÿ‘จEducation Computer Engineering ๐ŸŽ“Expected Graduation: February 2023 ๐Ÿ“žContact info thstjddn77@gmail.com

0๊ฐœ์˜ ๋Œ“๊ธ€