๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ’ป/Javascript

(45) [JavaScript] 1์ผ JavaScript ๊ธฐ๋ณธ - 1

by ๋”ฐ๊ถˆ 2024. 4. 19.

 

ํ”„๋กœ๊ทธ๋žจ ๊ธฐ๋ณธ

JavaScript๋Š” ๋Œ€์†Œ๋ฌธ์ž๋ฅผ ๊ตฌ๋ณ„ํ•˜๋ฉฐ ์œ ๋‹ˆ์ฝ” ๋ฌธ์ž ์…‹์„ ์ด์šฉํ•œ๋‹ค. JavaScript ์—์„œ๋Š” ๋ช…๋ น์„ ๋ช…๋ น๋ฌธ์ด๋ผ๊ณ  ๋ถ€๋ฅด๋ฉฐ, ์„ธ๋ฏธ์ฝœ๋ก (;)์œผ๋กœ ๊ตฌ๋ถ„ํ•œ๋‹ค. ๋ช…๋ น๋ฌธ์ด ํ•œ ์ค„๋กœ ๊ตฌ์„ฑ๋œ ๊ฒฝ์šฐ ์„ธ๋ฏธ์ฝœ๋ก ์€ ์ƒ๋žต ๊ฐ€๋Šฅํ•˜์ง€๋งŒ ํ•œ ์ค„์— ๋‘ ๊ฐœ ์ด์ƒ์˜ ๋ช…๋ น๋ฌธ์ด ์žˆ๋Š” ๊ฒฝ์šฐ ์ƒ๋žต ๋ถˆ๊ฐ€. 

 

 

ํ”„๋กœ๊ทธ๋žจ ๊ตฌ์„ฑ ์š”์†Œ

์š”์†Œ ์˜๋ฏธ
ํ‚ค์›Œ๋“œ JavaScript ์ž์ฒด์— ๋ฏธ๋ฆฌ ์ •์˜๋œ ๋‹จ์–ด๋“ค๋กœ ์‚ฌ์šฉ์ž๊ฐ€ ๋‹ค๋ฅธ ๋ชฉ์ ์œผ๋กœ ์‚ฌ์šฉ๋  ์ˆ˜ ์—†๋‹ค.
์‹๋ณ„์ž ์‹๋ณ„์ž๋Š” ์‚ฌ์šฉ์ž์— ์˜ํ•ด ์ •์˜๋˜๊ณ  ์‚ฌ์šฉ๋˜์–ด ์ง€๋Š” ๊ฒƒ์œผ๋กœ Object ๋ช…, ๋ณ€์ˆ˜ ๋ช…์ด๋‚˜ ํ•จ์ˆ˜๋ช… ๋“ฑ์„ ๋“ค ์ˆ˜ ์žˆ๋‹ค.
๋ฆฌํ„ฐ๋Ÿด ๋ฆฌํ„ฐ๋„์€ ๋ฐ์ดํ„ฐ ๊ทธ ์ž์ฒด๋ฅผ ์˜๋ฏธํ•˜๋ฉฐ, ์ฆ‰, ๋ณ€์ˆ˜์— ๋„ฃ๋Š” ๋ณ€ํ•˜์ง€ ์•Š๋Š” ๋ฐ์ดํ„ฐ(๊ฐ’)๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค.
์—ฐ์‚ฐ์ž ํ”„๋กœ๊ทธ๋žจ์—์„œ ์—ฐ์‚ฐ์„ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ๊ฒƒ์œผ๋กœ ์‚ฐ์ˆ ์—ฐ์‚ฐ์ž, ๋…ผ๋ฆฌ์—ฐ์‚ฐ์ž,๋น„๊ต์—ฐ์‚ฐ์ž,๋Œ€์ž…์—ฐ์‚ฐ์ž ๋“ฑ์ด ์žˆ๋‹ค. 

 

์„ ์–ธ ๋ฐฉ๋ฒ• 

  • var : ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธ. ์ถ”๊ฐ€๋กœ ๋™์‹œ์— ๊ฐ’์„ ์ดˆ๊ธฐํ™”
  • let : ๋ธ”๋ก ๋ฒ”์œ„ ์ง€์—ญ ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธ. ์ถ”๊ฐ€๋กœ ๋™์‹œ์— ๊ฐ’์„ ์ดˆ๊ธฐํ™”
  • const : ๋ธ”๋ก ๋ฒ”์œ„ ์ฝ๊ธฐ ์ „์šฉ ์ƒ์ˆ˜๋ฅผ ์„ ์–ธ 

 

๋ณ€์ˆ˜ (variable) 

์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ๊ฐ’์— ์ƒ์ง•์ ์ธ ์ด๋ฆ„์œผ๋กœ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ๋ณ€์ˆ˜๋ช…์€ ์‹๋ณ„์ž๋ผ๊ณ  ๋ถˆ๋ฆฌ๋ฉฐ ํŠน์ • ๊ทœ์น™์„ ๋”ฐ๋ฅธ๋‹ค. ์‹๋ณ„์ž๋Š” ๋ฌธ์ž,๋ฐ‘์ค„(_)๋˜๋Š” $๋กœ ์‹œ์ž‘ํ•ด์•ผ ํ•˜๋ฉฐ, ์ดํ›„๋Š” ์ˆซ์ž(0-9) ์ผ ์ˆ˜๋„ ์žˆ๋‹ค. ๋Œ€์†Œ๋ฌธ์ž๋ฅผ ๊ตฌ๋ถ„ํ•˜๋ฏ€๋กœ, ๋ฌธ์ž๋Š” 'A' ๋ถ€ํ„ฐ 'Z'์™€ 'a'๋ถ€ํ„ฐ 'z'๊นŒ์ง€ ๋ชจ๋‘ ํฌํ•จํ•œ๋‹ค. 

 

๋ณ€์ˆ˜ ์„ ์–ธ ๋ฐ ๊ฐ’ ํ• ๋‹น 

  • var ํ‚ค์›Œ๋“œ : ์ง€์—ญ ๋ฐ ์ „์—ญ ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.
  • let ํ‚ค์›Œ๋“œ : ๋ธ”๋ก ๋ฒ”์œ„ ์ง€์—ญ ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•˜๋Š”๋ฐ ์‚ฌ์šฉํ•œ๋‹ค.
  • ์ง€์ •๋œ ์ดˆ๊ธฐ๊ฐ’ ์—†์ด var ํ˜น์€ let๋ฌธ์„ ์‚ฌ์šฉํ•ด์„œ ์„ ์–ธ๋œ ๋ณ€์ˆ˜๋Š” undefinde ๊ฐ’์„ ๊ฐ–๋Š”๋‹ค. ์„ ์–ธ ๋˜์ง€ ์•Š์€ ๋ณ€์ˆ˜์— ์ ‘๊ทผ์„ ์‹œ๋„ํ•˜๋Š” ๊ฒฝ์šฐ ReferenceError ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. 
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<link rel="icon" href="data:;base64,iVBORw0KGgo=">
</head>
<body>

	<h3>๋ณ€์ˆ˜(variable)์„ ์–ธ</h3>


	<script type="text/javascript">
		var a = 10,b = 20,c; // ๋ณ€์ˆ˜ ์„ ์–ธ

		console.log(c); // undefined ์ดˆ๊ธฐ๊ฐ’์„ ๋ถ€์—ฌํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ. ์—๋Ÿฌ ์•„๋‹˜. 
		
// 		c=x+a; // ์—๋Ÿฌ(ReferenceError)
		
		c = a + b;
		console.log(c); // 30
	</script>



</body>
</html>

 

 

๋ฒ”์œ„ 

  • ์ „์—ญ ๋ณ€์ˆ˜ : ํ•จ์ˆ˜์˜ ๋ฐ”๊นฅ์—์„œ ์„ ์–ธํ•œ ๋ณ€์ˆ˜๋กœ, ํ˜„์žฌ ๋ฌธ์„œ์˜ ๋‹ค๋ฅธ ์ฝ”๋“œ์— ํ•ด๋‹น ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์ง€์—ญ ๋ณ€์ˆ˜ : ํ•จ์ˆ˜ ๋‚ด๋ถ€์—์„œ ์„ ์–ธํ•œ ๋ณ€์ˆ˜๋กœ, ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•œ ํ•จ์ˆ˜ ๋‚ด์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. 
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<link rel="icon" href="data:;base64,iVBORw0KGgo=">
</head>
<body>

	<h3>๋ณ€์ˆ˜(variable)์˜ ๋ฒ”์œ„</h3>

	<script type="text/javascript">
		var a = 10; // ์ „์—ญ ๋ณ€์ˆ˜

		function sub() { // ํ•จ์ˆ˜ ์„ ์–ธ
			console.log(a);
			a = a + 30; // ์ „์—ญ๋ณ€์ˆ˜ a:40
			b = 100; // var ๋˜๋Š” let๋ฅผ ๋ถ™์ด์ง€ ์•Š์€ ๋ณ€์ˆ˜๋Š” ์ „์—ญ ๋ณ€์ˆ˜ 

			if (true) { // ๋ธ”๋ก ์•ˆ์— ์„ ์–ธ๋œ ๋ณ€์ˆ˜ 

				var x = 5;
				//var๋กœ ์„ ์–ธํ•œ ๋ณ€์ˆ˜์˜ ๋ฒ”์œ„๋Š” if() ๋ธ”๋ก์ด ์•„๋‹ˆ๋ผ x๊ฐ€ ์„ ์–ธ๋œ ํ•จ์ˆ˜์ด๋‹ค. 
			}

			console.log('x', x)

			if (true) {// ๋ธ”๋ก ์•ˆ์— ์„ ์–ธ๋œ ๋ณ€์ˆ˜
				let y = 10;
				//let์œผ๋กœ ์„ ์–ธํ•œ ๋ณ€์ˆ˜์˜ ๋ฒ”์œ„๋Š” ์„ ์–ธ๋œ ๋ธ”๋ก์ธ if() ๋ธ”๋ก์ด๋‹ค. 
			}
			
			// 			 console.log('y',y);  ReferenceError ์—๋Ÿฌ
		}

		function fun() {
			console.log('sub-a', a); // 40
			console.log('sub-b', b); // 100

		}

		//ํ•จ์ˆ˜ ํ˜ธ์ถœ
		sub();
		fun();
	</script>


</body>
</html>

๋ณ€์ˆ˜ ํ˜ธ์ด์ŠคํŒ…(hoisting) 

ํ˜ธ์ด์ŠคํŠธ๋ž€, ๋ณ€์ˆ˜์˜ ์ •์˜๊ฐ€ ๊ทธ ๋ฒ”์œ„์— ๋”ฐ๋ผ ์„ ์–ธ๊ณผ ํ• ๋‹น์œผ๋กœ ๋ถ„๋ฆฌ๋˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค. ๋ณ€์ˆ˜๊ฐ€ ํ•จ์ˆ˜ ๋‚ด์—์„œ ์ •์˜๋˜์—ˆ์„ ๊ฒฝ์šฐ ์„ ์–ธ์ด ํ•จ์ˆ˜์˜ ์ตœ์ƒ์œ„๋กœ, ํ•จ์ˆ˜ ๋ฐ”๊นฅ์—์„œ ์ •์˜๋˜์—ˆ์„ ๊ฒฝ์šฐ๋Š” ์ „์—ญ ์ปจํ…์ŠคํŠธ์˜ ์ตœ์ƒ์œ„๋กœ ๋ณ€๊ฒฝ๋œ๋‹ค. 

`์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ๋‚˜์ค‘์— ์„ ์–ธ๋œ ๋ณ€์ˆ˜๋ฅผ ์ฐธ์กฐํ•  ์ˆ˜ ์žˆ๋‹ค.'

 

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<link rel="icon" href="data:;base64,iVBORw0KGgo=">
</head>
<body>

	<h3>๋ณ€์ˆ˜ - ํ˜ธ์ด์ŠคํŒ…(hoisting)</h3>

	<script type="text/javascript">
		function sub() {
			// 	console.log(a); //์—๋Ÿฌ 

			//์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ๋‚˜์ค‘์— ์„ ์–ธํ•œ ๋ณ€์ˆ˜๋ฅผ ์ฐธ์กฐํ•  ์ˆ˜ ์žˆ๋‹ค.
			console.log(x); // undefined
			var x = 3;
			console.log(x); // 3

			// ์œ„๋Š” ์•„๋ž˜์™€ ์œ ์‚ฌ 

			var x;
			console.log(x);
			x = 3;
// 			console.log(x);
		}

		sub();
	</script>

</body>
</html>

 

 

๋ฐ์ดํ„ฐ ํƒ€์ž…

๋ฐ์ดํ„ฐํ˜• ์˜๋ฏธ
Boolean true์™€ false
null null๊ฐ’์„ ๋‚˜ํƒ€๋‚ด๋Š” ํŠน๋ณ„ํ•œ ํ‚ค์›Œ๋“œ
undfined  ๊ฐ’์ด ์ €์žฅ๋˜์–ด ์žˆ์ง€ ์•Š์€ ์ตœ์ƒ์œ„ ์†์„ฑ
Number ์ •์ˆ˜ ๋˜๋Š” ์‹ค์ˆ˜ํ˜• ์ˆซ์ž
String ๋ฌธ์ž์—ด
Symbol ์ธ์Šคํ„ด์Šค๊ฐ€ ๊ณ ์œ ํ•˜๊ณ  ๋ถˆ๋ณ€์ธ ๋ฐ์ดํ„ฐํ˜• 

 

  • undefined ์™€ null : ๋ชจ๋‘ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ '๊ฐ’์ด ๋น„์–ด์žˆ์Œ'์„ ๋‚˜ํƒ€๋‚ธ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ๊ฐ’์ด ์ €์žฅ๋˜์ง€(์ดˆ๊ธฐํ™”๋˜์ง€)์•Š์€ ๋ณ€์ˆ˜๋Š” undefined  ํƒ€์ž…์ด๋ฉฐ, undefined  ํƒ€์ž…์˜ ๋ณ€์ˆ˜๋Š” ๋ณ€์ˆ˜ ์ž์ฒด์˜ ๊ฐ’ ๋˜ํ•œ undefined ์ด๋‹ค. null์ด๋ž€ ๋นˆ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ•˜๋Š” ํŠน๋ณ„ํ•œ ๊ฐ’์ด๋‹ค. ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ช…์‹œ์ ์œผ๋กœ ๊ฐ’์ด ๋น„์–ด์žˆ์Œ์„ ๋‚˜ํƒ€๋‚ด๋Š”๋ฐ ์‚ฌ์šฉํ•œ๋‹ค. ์ฃผ์˜ํ• ์ ์€  null ํƒ€์ž…์˜ ๋ณ€์ˆ˜๋Š” typeof๊ฒฐ๊ณผ๊ฐ€ null์ด ์•„๋‹ˆ๋ผ object์ด๋‹ค. 

 

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<link rel="icon" href="data:;base64,iVBORw0KGgo=">
</head>
<body>

<h3>๋ฐ์ดํ„ฐ ํƒ€์ž…</h3>

<script type="text/javascript">
var a,b;

a='์ž๋ฐ”'; // string - ๋ฌธ์ž์—ด
b=typeof(a);
console.log(b);

a=100; //number -์ˆซ์ž 
b=typeof(a);
console.log(b);

a=10.5; //number -์ˆซ์ž 
b=typeof(a);
console.log(b);

a=true;  // boolean - ๋…ผ๋ฆฌํ˜• 
b=typeof(a);
console.log(b);

a=function(){};  // boolean - ๋…ผ๋ฆฌํ˜• 
b=typeof(a);
console.log(b);

b={}; //object - ๊ฐ์ฒด 
b=typeof(b);
console.log(b);

a=null; // object - ๊ฐ์ฒด 
b=typeof(a);
console.log(b);

var x;
b=typeof(x); // undefined ํƒ€์ž… ๊ฐ’์ด ์ดˆ๊ธฐํ™” ๋˜์ง€ ์•Š์€ ๋ณ€์ˆ˜ 
console.log(b); // undefined
console.log(x); // undefined


b=typeof(y);// undefined ํƒ€์ž… - ์ •์˜ ํ•˜์ง€ ์•Š์€ ๋ณ€์ˆ˜ 
console.log(b);



</script>

</body>
</html>