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

(46) [JavaScript] 2์ผ JavaScript ๊ธฐ๋ณธ ๋‚ด์žฅ ํ•จ์ˆ˜

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

 

๊ธฐ๋ณธ ๋‚ด์žฅ ํ•จ์ˆ˜ 

  • ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ์ž์ฒด์ ์œผ๋กœ ๋ฏธ๋ฆฌ ์ •์˜๋œ ๋‚ด์žฅํ•จ์ˆ˜๋ฅผ ์ œ๊ณตํ•œ๋‹ค.
  • ํ‘œ์ค€ ๋‚ด์žฅ ๊ฐ์ฒด์˜ ํ•จ์ˆ˜ ์†์„ฑ์œผ๋กœ ์ œ๊ณตํ•œ๋‹ค.
  • ๊ฐ์ฒด์— ๋ถ™์ง€ ์•Š๊ณ  ์ „์—ญ์œผ๋กœ ํ˜ธ์ถœํ•˜๋Š” ํ•จ์ˆ˜๋กœ, ๋ฐ˜ํ™˜ ๊ฐ’์„ ํ˜ธ์ถœ์ž์—๊ฒŒ ๋ฐ”๋กœ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

 

๋ฌธ์ž์—ด → ์ˆซ์ž๋กœ ๋ณ€ํ™˜ ํ•จ์ˆ˜ 

parseInt() ๋ฌธ์ž์—ด ์ธ์ž์˜ ๊ตฌ๋ฌธ์„ ๋ถ„์„ํ•ด ํŠน์ • ์ง„์ˆ˜์˜ ์ •์ˆ˜๋ฅผ ๋ฐ˜ํ™˜
parseFloat() ๋ฌธ์ž์—ด์„ ๋ถ„์„ํ•ด ๋ถ€๋™์†Œ์ˆ˜์  ์‹ค์ˆ˜๋กœ ๋ฐ˜ํ™˜ํ•œ๋‹ค. 
Number() ์ธ์ˆ˜๋ฅผ ใ……์ˆซ์ž๋กœ ๋ณ€ํ™˜ํ•  ์ˆ˜ ์—†์œผ๋ฉด NaN์„ ๋ฐ˜ํ™˜ 

 

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

	<h3>์ˆซ์ž๋กœ ๋ณ€ํ™˜:parseInt(),parseFloat()</h3>

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

		a = "123";
		console.log(a === 123); //false
		console.log(a + 10); //12310

		//๋ฌธ์ž์—ด์„ ์ˆซ์ž๋กœ ๋ณ€ํ™˜
		b = parseInt(a);
		console.log(b === 123); //true
		console.log(b + 10);//133

		a = "1,234";
		b = parseInt(a); // 1
		console.log(a, b)//
		
		a = "123a";
		b = parseInt(a); // 123
		console.log(a, b)//
		
		a = "123.567";
		b = parseInt(a); // 123
		console.log(a, b)//
		
		a = "";
		b = parseInt(a); // NaN
		console.log(a, b)
		
		a = "   123";
		b = parseInt(a); // 123 ๊ณต๋ฐฑ์€ ์‹ ๊ฒฝ์“ฐ์ง€ ์•Š๋Š”๋‹ค. 
		console.log(a, b)
		
		a = "1 2 3";
		b = parseInt(a); // 1 ๊ฐ€์žฅ ์•ž์— ์žˆ๋Š” ๊ณต๋ฐฑ์€ ์ œ๊ฑฐ ํ•˜๋‚˜, 
						//์ค‘๊ฐ„์— ์žˆ๋Š” ๊ณต๋ฐฑ์€ ์ œ๊ฑฐ ํ•˜์ง€ ๋ชปํ•œ๋‹ค.
		console.log(a, b)
		
		a = "a123";
		b = parseInt(a); // NaN
		console.log(a, b)
		
		a = "0x3F";
		b = parseInt(a); //63 
		console.log(a, b)
		
		a = "0x3F";
		b = parseInt(a,16); 
		console.log(a, b) // 63
		
		a = "0x3F";
		b = parseInt(a,10);  
		console.log(a, b) //0
		
		
		a = "123.456";
		b = parseInt(a); // 123.456
		console.log(a, b)
		
		
		
	</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>์ˆซ์ž๋กœ ๋ณ€ํ™˜ - Number()ํ•จ์ˆ˜ </h3>

	<script type="text/javascript">
	var a,b;
	
	a="123";
	b=Number(a);
	console.log(b===123); // true 
	
	a="123.57";
	b=Number(a);//123.57
	console.log(a,b);
	
	a="1,234";
	b=Number(a);//NaN 
	console.log(a,b);
	
	a="123a";
	b=Number(a);//NaN 
	console.log(a,b);
	
	a=null;
	b=Number(a); //0
	console.log(a,b);
	
	a="kor";
	b=Number(a);//NaN 
	console.log(a,b);
	
	a="0x11";
	b=Number(a);//17
	console.log(a,b);
	
	
	
	</script>


</body>
</html>

 

 

 

์ˆซ์ž ํ™•์ธ ํ•จ์ˆ˜ 

isFinite() number๊ฐ€ ๋ฌดํ•œํ•œ ๊ฐ’์ธ์ง€ ํ™•์ธ, ์œ ํ•œํ•œ ์ˆ˜์ด๋ฉด true๋ฅผ ๋ฆฌํ„ด
isNaN number๊ฐ€ ์ˆซ์ž์ธ์ง€ ํ™•์ธ, ์ˆซ์ž๊ฐ€ ์•„๋‹ˆ๋ฉด  true๋ฅผ ๋ฆฌํ„ด

 

<!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="123";
	b=isFinite(a); // true ์ˆซ์ž๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์œผ๋ฉด ์ฐธ 
	console.log(a,b);
	
	a="123.57";
	b=isFinite(a); // true 
	console.log(a,b);
	
	a="1,234";
	b=isFinite(a); // false
	console.log(a,b);
	
	a="123a";
	b=isFinite(a); // false
	console.log(a,b);
	
	a="123";
	b=isNaN(a); // false.์ˆซ์ž๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์œผ๋ฉด false 
	console.log(a,b);
	
	a="1,234";
	b=isNaN(a);	//true
	console.log(a,b);
	
	a="";
	b=isNaN(a);	//false
	console.log(a,b);
	
	
	
	
	</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>์ธ์ฝ”๋”ฉ๊ณผ ๋””์ฝ”๋”ฉ</h3>


	<script type="text/javascript">
		var s = 'seoul?์ž ๋ฐ”&123+4';
		var out;

		//์˜๋ฌธ์ž, ์ˆซ์ž, ์ผ๋ถ€ํŠน์ˆ˜๋ฌธ์ž(@ * - _ + . /)๋ฅผ ์ œ์™ธํ•œ ๋ฌธ์ž๋ฅผ ์ธ์ฝ”ํŒ…(์ฃผ์†Œํ˜•์‹์œผ๋กœ ๋ณ€ํ™˜)
		out = escape(s);
		console.log('escape', out);

		//์˜๋ฌธ์ž,์ˆซ์ž,์ธํ„ฐ๋„ท์ฃผ์†Œ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๋ฌธ์ž(:/?=+&...)๋ฅผ ์ œ์™ธํ•œ ๋ฌธ์ž๋ฅผ ์ธ์ฝ”ํŒ…
		out = encodeURI(s);
		console.log('escape', out);

		//์˜๋ฌธ์ž,์ˆซ์ž๋ฅผ ์ œ์™ธํ•œ ๋ฌธ์ž๋ฅผ ์ธ์ฝ”ํŒ…:โ˜…์•”๊ธฐํ• ๊ฒƒโ˜…
		out = encodeURIComponent(s);
		console.log('encodeURIComponent', out);

		//๋””์ฝ”๋”ฉ
		out = decodeURIComponent(out);
		console.log('decodeURIComponent', out);
		
	</script>


</body>
</html>

 

 

ํƒ€์ด๋จธ ํ•จ์ˆ˜ 

ํŠน์ •ํ•œ ์‹œ๊ฐ„์— ํŠน์ •ํ•œ ํ•จ์ˆ˜๋ฅผ ์‹คํ–‰ํ•˜๋Š” ํ•จ์ˆ˜๋กœ window ๊ฐ์ฒด์— ์ •์˜๋˜์–ด ์žˆ๋‹ค. 

setTimeout ์ผ์ • ์‹œ๊ฐ„ ํ›„ ํ•จ์ˆ˜๋ฅผ ํ•œ ๋ฒˆ ์‹คํ–‰
setInterval ์ผ์ • ์‹œ๊ฐ„๋งˆ๋‹ค ํ•จ์ˆ˜๋ฅผ ๋ฐ˜๋ณต ์‹คํ–‰
clearTimeout ์ผ์ • ์‹œ๊ฐ„ ํ›„ ํ•จ์ˆ˜๋ฅผ ํ•œ ๋ฒˆ ์‹ฑํ–‰ํ•˜๋Š” ๊ฒƒ์„ ์ค‘์ง€ 
clearInterval ์ผ์ • ์‹œ๊ฐ„๋งˆ๋‹ค ํ•จ์ˆ˜๋ฅผ ๋ฐ˜๋ณตํ•˜๋Š” ๊ฒƒ์„ ์ค‘๋‹จ 

 

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

<script type="text/javascript">
	document.write('<h3>ํƒ€์ด๋จธ ์˜ˆ์ œ</h3>');
	
	function sub() {
		document.write('<p>์ž๋ฐ” ์Šคํฌ๋ฆฝํŠธ</p>');
	}
	
	//3์ดˆํ›„์— ํ•œ๋ฒˆ ์‹คํ–‰ 
	setTimeout('alert("ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค.");',3000);
	
	//2์ดˆ๋งˆ๋‹ค ํ•œ๋ฒˆ์”ฉ ๋ฌดํ•œ ๋ฐ˜๋ณต 
	setInterval('sub();',2000);

</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>ํƒ€์ด๋จธ ์ข…๋ฃŒ</h3>
	
	<script type="text/javascript">
	var n = 0;
	
	function fun() {
		n++;
		document.write('<p>ํƒ€์ด๋จธ ์‹คํ–‰-'+n+'</p>');
	}
	
	//1์ดˆ์— ํ•œ๋ฒˆ์”ฉ ๋ฌดํ•œ๋ฐ˜๋ณต 
	var timer = setInterval("fun();",1000); //ํƒ€์ด๋จธ ๊ฐ์ฒด ๋ฐ˜ํ™˜
	
	//10์ดˆํ›„์— ํ•œ๋ฒˆ๋งŒ ์‹คํ–‰ 
	setTimeout(function name() {
		clearTimeout(timer); // ํƒ€์ด๋จธ ์ข…๋ฃŒ 
	},10000);
	
	</script>

</body>
</html>

 

 

๊ฒฝ๊ณ  ์ฐฝ ๋ฐ ์ž…๋ ฅ ๋Œ€ํ™”์ƒ์ž ๋ฉ”์†Œ๋“œ

alert() ํ™•์ธ ๋ฒ„ํŠผ๊ณผ ์„ ํƒ์  ๋ฉ”์‹œ์ง€๋ฅผ ๊ฐ€์ง„ ๊ฒฝ๊ณ  ๋Œ€ํ™” ์ƒ์ž๋ฅผ ์ถœ๋ ฅ
prompt() ์‚ฌ์šฉ์ž๊ฐ€ ํ…์Šค๋ฅผ ์ž…๋ ฅํ•  ์ˆ˜ ์žˆ๋„๋ก ์•ˆ๋‚ดํ•˜๋Š” ์„ ํƒ์  ๋ฉ”์„ธ์ง€๋ฅผ ๊ฐ–๊ณ  ์žˆ๋Š” ๋Œ€ํ™” ์ƒ์ž๋ฅผ ์ถœ๋ ฅํ•˜๋ฉฐ ์‚ฌ์šฉ์ž ๊ฐ€ ์ž…๋ ฅํ•œ ๋ฌธ์ž์—ด, ๋˜๋Š” null ์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

 

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

	<p>
		<button type="button" onclick="sub1();">ํ™•์ธ 1</button>
		<button type="button" onclick="sub2();">ํ™•์ธ 3</button>
	</p>

	<script type="text/javascript">
		function sub1() {
			let s = prompt('์ˆ˜์‹์ž…๋ ฅํ•ด๋ผ', ''); // ๋‘๋ฒˆ์งธ''๋Š” ๊ธฐ๋ณธ๊ฐ’์„ ๊ฐ€๋ฅดํ‚ด 
			let result = eval(s);
			alert(s + '=' + result);

		}
		function sub2() {
			if (sonfirm('์‚ญ์ œํ• ๋ž˜?')) {
				alert('์‚ญ์ œํ–ˆ๋‹ค.');

			}
		}
	</script>

</body>
</html>