λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
JavaScript/JavaScript

[JavaScript] ν•¨μˆ˜

by μ½”λ”©ν•˜λŠ” λΆ•μ–΄ 2021. 2. 11.
λ°˜μ‘ν˜•

β–Ά ν•¨μˆ˜

 

*κΈ°λ³Έ ν•¨μˆ˜ μ •μ˜λ¬Έ

ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ μ½”λ“œλ₯Ό μ €μž₯ν•œ 것을 'ν•¨μˆ˜ μ •μ˜λ¬Έ'이라고 ν•œλ‹€.

ν•¨μˆ˜μ—μ„œλŠ” function ν‚€μ›Œλ“œλ₯Ό μ‚¬μš©ν•΄ λ³€μˆ˜λ₯Ό μ„ μ–Έν•œλ‹€.

function ν•¨μˆ˜λͺ…() {
  μžλ°”μŠ€ν¬λ¦½νŠΈ μ½”λ“œ;
}

 

λ‹€μŒκ³Ό 같이 읡λͺ… ν•¨μˆ˜(ν•¨μˆ˜λͺ…이 μ—†λŠ” ν•¨μˆ˜)λ₯Ό μ„ μ–Έν•˜κ³  λ³€μˆ˜μ— 참쑰해도 λœλ‹€.

μ°Έμ‘° λ³€μˆ˜ = function() {
  μžλ°”μŠ€ν¬λ¦½νŠΈ μ½”λ“œ;
}

 

ν•¨μˆ˜ μ •μ˜λ¬Έ({...}) μ•ˆμ— μž‘μ„±λœ μ½”λ“œλŠ” μ¦‰μ‹œ μ‹€ν–‰λ˜μ§€ μ•ŠλŠ”λ‹€. ν•¨μˆ˜λŠ” λ©”λͺ¨λ¦¬μ— ν• λ‹Ήλ˜μ–΄ λŒ€κΈ°ν•˜κ³  μžˆλ‹€κ°€ ν•¨μˆ˜κ°€ 호좜되면 μ‹€ν–‰λœλ‹€. μ •μ˜λ˜μ–΄ μžˆλŠ” ν•¨μˆ˜λ₯Ό ν˜ΈμΆœν•˜λŠ” κΈ°λ³Έν˜•μ€ λ‹€μŒκ³Ό κ°™λ‹€.

ν•¨μˆ˜λͺ…();
λ˜λŠ” μ°Έμ‘° λ³€μˆ˜();

 

 

β˜…μΌλ°˜ ν•¨μˆ˜ μ •μ˜λŠ” ν•¨μˆ˜ 호좜 μ‹œ ν˜Έμ΄μŠ€νŒ…(hoisting) κΈ°μˆ μ„ μ§€μ›ν•œλ‹€. κ·ΈλŸ¬λ‚˜ 읡λͺ… ν•¨μˆ˜ μ„ μ–Έ μ°Έμ‘° 방식은 ν˜Έμ΄μŠ€νŒ…μ„ μ§€μ›ν•˜μ§€ μ•ŠλŠ”λ‹€. ν˜Έμ΄μŠ€νŒ…μ„ μ μš©ν•˜λ©΄ ν•¨μˆ˜ μ •μ˜λ¬Έλ³΄λ‹€ 호좜문이 λ¨Όμ € λ‚˜μ™€λ„ ν•¨μˆ˜ μ •μ˜λ¬Έμ„ λŒμ–΄μ˜¬λ € ν•¨μˆ˜λ₯Ό ν˜ΈμΆœν•œλ‹€.

 

 

예제 ) ν•¨μˆ˜ μ •μ˜λ¬Έκ³Ό 읡λͺ… ν•¨μˆ˜λ₯Ό λ³€μˆ˜μ— μ°Έμ‘°ν•œ 예

<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset = "UTF-8">
<title> ν•¨μˆ˜ </title>
<script>
	var count = 0;

	myFnc();
	
	function myFnc() {
		count++;
		document.write("hello" + count,"<br>");
	}        
	
	myFnc();
	
	var theFnc = function() {
		count++;
		document.write("bye" + count,"<br>");
	}
	
	theFnc();
</script>
</head>
<body>
</body>
</html>

 

예제 2) 배경색 λ°”κΎΈκΈ°

<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset = "UTF-8">
<title> ν•¨μˆ˜ </title>
<script>
	var color=["white", "yellow", "aqua", "purple"];
			
	var i=0;
	function changeColor() {
		i++;
		if(i >= color.length) {
			i = 0;
		}
		
		var bodyTag = document.getElementById("theBody");
		bodyTag.style.backgroundColor = color[i];
	}
</script>
</head>
<body id="theBody">
  <button onclick="changeColor();">배경색 λ°”κΎΈκΈ°</button>
</body>
</html>

 

 

 

*λ§€κ°œλ³€μˆ˜κ°€ μžˆλŠ” ν•¨μˆ˜ μ •μ˜λ¬Έ

λ§€κ°œλ³€μˆ˜κ°€ μžˆλŠ” ν•¨μˆ˜ μ •μ˜λ¬Έμ€ ν•¨μˆ˜λ₯Ό ν˜ΈμΆœν•  λ•Œ μ „λ‹¬ν•˜κ³ μž ν•˜λŠ” 값을 μž…λ ₯ν•˜μ—¬ ν˜ΈμΆœν•  수 μžˆλ‹€.

μ΄λ ‡κ²Œ μ „λ‹¬λœ 값은 λ§€κ°œλ³€μˆ˜κ°€ λ°›μ•„ ν•¨μˆ˜ μ •μ˜λ¬Έμ—μ„œ μ‚¬μš©ν•  수 있게 λœλ‹€.

function ν•¨μˆ˜λͺ…(λ§€κ°œλ³€μˆ˜ 1, λ§€κ°œλ³€μˆ˜ 2,... λ§€κ°œλ³€μˆ˜ n) {
  μžλ°”μŠ€ν¬λ¦½νŠΈ μ½”λ“œ;
}
ν•¨μˆ˜λͺ…(데이터 1, 데이터 2,... 데이터 n);

 

예제 )

<!DOCTYPE html>
<html lang="ko">
<head>
	<meta charset = "UTF-8">
	<title> ν•¨μˆ˜ </title>
	<script>
		function myFnc(name, area) {
			document.write("μ•ˆλ…•ν•˜μ„Έμš”. " + name + "μž…λ‹ˆλ‹€.", "<br>");
			document.write("μ‚¬λŠ”κ³³μ€ " + area + "μž…λ‹ˆλ‹€.", "<br><br>");
		}
		
		myFnc("홍당무", "μ„œμšΈ");
		
		myFnc("깍두기", "λΆ€μ‚°");
	</script>
</head>
<body>
</body>
</html>

 

예제 )

<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset = "UTF-8">
<title> ν•¨μˆ˜ </title>
<script>
	var rightId = "korea";
	var rightPw = "1234";
	function login(id, pw){
		if(id == rightId){
			if(pw == rightPw){
				document.write(id + "λ‹˜ 방문을 ν™˜μ˜ν•©λ‹ˆλ‹€");
			}else{
					alert("잘λͺ»λœ λΉ„λ°€λ²ˆν˜Έμž…λ‹ˆλ‹€.");
			}

		} else {
			alert("μ‘΄μž¬ν•˜μ§€ μ•ŠλŠ” μ•„μ΄λ””μž…λ‹ˆλ‹€.");
		}
	}

	var userId = prompt("아이디λ₯Ό μž…λ ₯ν•˜μ„Έμš”.", "");
	var userPw = prompt("νŒ¨μŠ€μ›Œλ“œλ₯Ό μž…λ ₯ν•˜μ„Έμš”.", "");

	login(userId, userPw);
</script>
</head>
<body>
</body>
</html>

​

​

*λ§€κ°œλ³€μˆ˜ 없이 ν•¨μˆ˜μ— μ „λ‹¬λœ κ°’ λ°›μ•„μ˜€κΈ°

ν•¨μˆ˜ μ •μ˜λ¬Έμ—μ„œ arguments을 μ‚¬μš©ν•˜λ©΄ λ§€κ°œλ³€μˆ˜λ₯Ό μ‚¬μš©ν•˜λŠ” κ²ƒμ²˜λŸΌ ν•¨μˆ˜ 호좜문의 값을 λ°›μ•„μ˜¬ 수 μžˆλ‹€. ν•¨μˆ˜ μ •μ˜λ¬Έμ˜ λ§€κ°œλ³€μˆ˜κ°€ μ—†λŠ” μƒνƒœμ—μ„œ 데이터λ₯Ό μ „λ‹¬ν•˜μ—¬ ν•¨μˆ˜λ₯Ό ν˜ΈμΆœν•˜λ©΄ κ·Έ 값은 배열에 μ €μž₯λœλ‹€. ν•¨μˆ˜ μ •μ˜λ¬Έμ—μ„œλŠ” κ·Έ 값을 argumentsλΌλŠ” λ³€μˆ˜λ‘œ μ°Έμ‘°ν•œλ‹€.

​

 

 

β–Ά ν•¨μˆ˜μ—μ„œ return 문의 μ—­ν• 

return 문은 ν•¨μˆ˜μ—μ„œ 결괏값을 λ°˜ν™˜ν•  λ•Œ μ‚¬μš©ν•œλ‹€. 그리고 ν•¨μˆ˜μ—μ„œ return 문이 μ‹€ν–‰λ˜λ©΄ 반볡문의 break λ¬Έκ³Ό λΉ„μŠ·ν•˜κ²Œ μ½”λ“œκ°€ κ°•μ œλ‘œ μ’…λ£Œλœλ‹€. λ‹€μ‹œ 말해 ν•¨μˆ˜ μ •μ˜λ¬Έμ— return 문이 μ‚¬μš©λ˜λ©΄ ν•¨μˆ˜λ₯Ό ν˜ΈμΆœν–ˆμ„ λ•Œ 결괏값(data)을 λ°˜ν™˜ν•œλ‹€.

​

*데이터λ₯Ό λ°˜ν™˜ν•˜κ³  κ°•μ œ μ’…λ£Œν•˜λŠ” returnλ¬Έ

function ν•¨μˆ˜λͺ…() {

  μžλ°”μŠ€ν¬λ¦½νŠΈ μ½”λ“œ1;
  return 데이터(κ°’);

  μžλ°”μŠ€ν¬λ¦½νŠΈ μ½”λ“œ2;
}

var λ³€μˆ˜ = ν•¨μˆ˜λͺ…();

 

예제 )

<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset = "UTF-8">
<title> ν•¨μˆ˜ </title>
<script>
	function testAvg(arrData){
		var sum = 0;    
		for(var i = 0; i < arrData.length; i++) {
			sum += Number(prompt(arrData[i] + " μ μˆ˜λŠ”?", "0"));
		}

		var avg = sum / arrData.length;
		return avg;
	}

	var arrSubject = ["κ΅­μ–΄", "μˆ˜ν•™"];
	var result = testAvg(arrSubject);

	document.write("평균 μ μˆ˜λŠ” " + result + "점 μž…λ‹ˆλ‹€");
</script>
</head>
<body>
</body>
</html>

 

예제 )

<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset = "UTF-8">
<title> ν•¨μˆ˜ </title>
<style>
	*{margin: 0;padding: 0;}
	#galleryZone {text-align: center;}
	#galleryZone input[type="image"]{margin:0 8px;}
</style>
<script>
	var num = 1;
	function gallery(direct) {
		if(direct) {
			if(num == 8) return;
			num++;
		} else {
			if(num == 1) return;
			num--;
		}

		var imgTag = document.getElementById("photo");
		imgTag.setAttribute("src","images/pic_" + num + ".jpg");
	}
</script>
</head>
<body>
	<div id="galleryZone">
		<p><img src="images/pic_1.jpg" id="photo" alt=""></p>
		<p>
			<button onclick="gallery(0)">이전</button>
			<button onclick="gallery(1)">λ‹€μŒ</button>
		</p>
	</div>
</body>
</html>

 

 

 

β–Ά μž¬κ·€ ν•¨μˆ˜ 호좜

function myFnc() {
  μžλ°”μŠ€ν¬λ¦½νŠΈ μ½”λ“œ;
  myFnc();
}
myFnc();

 

예제 )

<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset = "UTF-8">
<title> ν•¨μˆ˜ </title>
<script>
	var num = 0;
	function testFnc(){
		num++;
		document.write(num, "<br>");
		if(num == 10) return;
		
		testFnc();
	}
	
	testFnc();
</script>
</head>
<body>
</body>
</html>

 

 

 

β–Ά ν•¨μˆ˜ μŠ€μ½”ν”„ κ°œλ… 이해

 

*ν•¨μˆ˜ μŠ€μ½”ν”„λž€?

μŠ€μ½”ν”„(Scope)의 사전적 μ˜λ―ΈλŠ” 'λ²”μœ„'이며, μ—¬κΈ°μ—μ„œλŠ” λ³€μˆ˜ λ˜λŠ” ν•¨μˆ˜μ˜ 유효 λ²”μœ„λ₯Ό 가리킨닀.

​

​

*μ „μ—­ λ³€μˆ˜μ™€ 지역 λ³€μˆ˜μ˜ κ°œλ…κ³Ό 차이

μ „μ—­ λ³€μˆ˜λŠ” μžλ°”μŠ€ν¬λ¦½νŠΈ μ–΄λ””μ—μ„œλ“  μ‚¬μš©ν•  수 μžˆλŠ” λ³€μˆ˜μ΄κ³  지역 λ³€μˆ˜λŠ” ν•¨μˆ˜ μŠ€μ½”ν”„μ—μ„œλ§Œ μ‚¬μš©ν•  수 μžˆλŠ” λ³€μˆ˜μ΄λ‹€. λ‹€μŒμ€ μ „μ—­ λ³€μˆ˜μ™€ 지역 λ³€μˆ˜λ₯Ό μ„ μ–Έν•˜λŠ” κΈ°λ³Έν˜•μ΄λ‹€.

​

​

*μ „μ—­ ν•¨μˆ˜μ™€ 지역 ν•¨μˆ˜μ˜ 차이

μ „μ—­ ν•¨μˆ˜λŠ” μžλ°”μŠ€ν¬λ¦½νŠΈ μ–΄λ””μ—μ„œλ“  μ‚¬μš©ν•  수 μžˆλŠ” ν•¨μˆ˜μ΄κ³ , 지역 ν•¨μˆ˜λŠ” ν•¨μˆ˜ μŠ€μ½”ν”„μ—μ„œλ§Œ μ‚¬μš©ν•  수 μžˆλŠ” ν•¨μˆ˜μ΄λ‹€. λ‹€μŒμ€ μ „μ—­ ν•¨μˆ˜μ™€ 지역 ν•¨μˆ˜λ₯Ό μ„ μ–Έν•˜λŠ” κΈ°λ³Έν˜•μ΄λ‹€.

function ν•¨μˆ˜λͺ…1() {
  μžλ°”μŠ€ν¬λ¦½νŠΈ μ½”λ“œ;
}

function ν•¨μˆ˜λͺ…2() {
  function ν•¨μˆ˜λͺ…3() {
    μžλ°”μŠ€ν¬λ¦½νŠΈ μ½”λ“œ;
  }
}

ν•¨μˆ˜ μŠ€μ½”ν”„μ—μ„œ μ„ μ–Έλœ ν•¨μˆ˜λŠ” 지역 ν•¨μˆ˜κ°€ λ˜μ–΄ ν•¨μˆ˜ μŠ€μ½”ν”„μ—μ„œλ§Œ ν˜ΈμΆœν•  수 μžˆλ‹€. λ”°λΌμ„œ μŠ€μ½”ν”„ λ°–μ—μ„œ myFnc() ν•¨μˆ˜λ₯Ό ν˜ΈμΆœν•˜λ©΄ ν•¨μˆ˜ μŠ€μ½”ν”„μ—μ„œ μ„ μ–Έν•œ 지역 ν•¨μˆ˜κ°€ μ•„λ‹Œ μ „μ—­ ν•¨μˆ˜κ°€ μ‹€ν–‰λ˜μ–΄ 'μ „μ—­ ν•¨μˆ˜'λΌλŠ” κ²½κ³  창이 λ‚˜νƒ€λ‚œλ‹€.

 

 

 

β–Ά μ „μ—­κ³Ό 지역을 λ‚˜λˆ„λŠ” 이유

ν”„λ‘œκ·Έλž¨μ„ κ°œλ°œν•  λ•Œ μ „μ—­(Global)κ³Ό 지역(Local)을 λ‚˜λˆ„λ©΄ μΆ©λŒμ„ ν”Όν•  수 μžˆλ‹€.

​

예제 )

<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset = "UTF-8">
<title> ν•¨μˆ˜ </title>
<script>
	var num = 100;
	function menu( ) {
		num += 100;
		alert(num);
	}
	menu();

	function menu( ) {
		alert(num);
	}
</script>
</head>
<body>
</body>
</html>

 

 

-μ¦‰μ‹œ μ‹€ν–‰ ν•¨μˆ˜

μ§€μ—­ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ ν•¨μˆ˜λ₯Ό μ„ μ–Έν•˜λ©΄ ν•¨μˆ˜κ°€ μΆ©λŒν•˜λŠ” λΆˆμƒμ‚¬λ₯Ό ν”Όν•  수 μžˆλ‹€.

(function() {
   μžλ°”μŠ€ν¬λ¦½νŠΈ μ½”λ“œ;
}());

 

예제 )

<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset = "UTF-8">
<title> ν•¨μˆ˜ </title>
<script>
	(function() {
		var num = 100;
		function menu( ) {
			num += 100;
			alert(num);
		}
		menu( );
	}());

	(function(){
		var num = 100;
		function menu( ) {
			alert(num);
		}
	}( ));
</script>
</head>
<body>
</body>
</html>

 

 

 

β–Ά 객체 μƒμ„±μž ν•¨μˆ˜μ˜ ν™œμš©

 

*객체 μƒμ„±μž ν•¨μˆ˜

λ‚΄μž₯ 객체λ₯Ό 생성할 λ•ŒλŠ” 이미 μžλ°”μŠ€ν¬λ¦½νŠΈ 엔진에 λ‚΄μž₯λ˜μ–΄ μžˆλŠ” 객체 μƒμ„±μž ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ 객체λ₯Ό μƒμ„±ν•œλ‹€.

function ν•¨μˆ˜λͺ…(λ§€κ°œλ³€μˆ˜ 1, λ§€κ°œλ³€μˆ˜ 2,... λ§€κ°œλ³€μˆ˜ n) {
  this.속성λͺ… = μƒˆ κ°’;
  this.ν•¨μˆ˜λͺ… = function() {
     μžλ°”μŠ€ν¬λ¦½νŠΈ μ½”λ“œ;
  }
}

var μ°Έμ‘° λ³€μˆ˜(μΈμŠ€ν„΄μŠ€ λ„€μž„) = new ν•¨μˆ˜λͺ…();
                        ↓
var μ°Έμ‘° λ³€μˆ˜ = { 속성: μƒˆ κ°’, ν•¨μˆ˜λͺ…: function() { ... } }

 

예제 )

<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset = "UTF-8">
<title> ν•¨μˆ˜ </title>
<script>
	function CheckWeight(name, height, weight) {
		this.userName = name;
		this.userHeight = height;
		this.userWeight = weight;
		this.minWeight;
		this.maxWeight;

		this.getInfo = function() {
			var str = ""
				str += "이름: " + this.userName + ", ";
				str += "ν‚€: " + this.userHeight + ", ";
				str += "λͺΈλ¬΄κ²Œ: " + this.userWeight + "<br>";
				return  str;
		}
		this.getResult = function( ) {
			this.minWeight = (this.userHeight - 100) * 0.9 - 5;
			this.maxWeight = (this.userHeight - 100) * 0.9 + 5;

			if(this.userWeight >= this.minWeight && 
			this.userWeight <= this.maxWeight) {
				return "정상 λͺΈλ¬΄κ²Œμž…λ‹ˆλ‹€";
			} else if(this.userWeight < this.minWeight) {
				return "정상 λͺΈλ¬΄κ²Œλ³΄λ‹€ λ―Έλ‹¬μž…λ‹ˆλ‹€";
			} else {
				return "정상 λͺΈλ¬΄κ²Œλ³΄λ‹€ μ΄ˆκ³Όμž…λ‹ˆλ‹€";
			}
		}
	}

	var jang = new CheckWeight("μž₯보리", 168, 62);
	var park = new CheckWeight("λ°•λ‹¬μž¬", 180, 88);
	console.log(jang);
	console.log(park);

	document.write(jang.getInfo());
	document.write(jang.getResult());
</script>
</head>
<body>
</body>
</html>

 

 

*λ©”λͺ¨λ¦¬ μ ˆμ•½μ„ μœ„ν•œ ν”„λ‘œν† νƒ€μž… μ‚¬μš©ν•˜κΈ°

ν•¨μˆ˜λ₯Ό μ—¬λŸ¬ 개 λ“±λ‘ν•˜λ©΄ λ©”λͺ¨λ¦¬ 곡간을 많이 μ°¨μ§€ν•˜μ—¬ λ©”λͺ¨λ¦¬λ₯Ό λ‚­λΉ„ν•˜κ²Œ λœλ‹€. 이럴 λ•ŒλŠ” 객체 μƒμ„±μž ν•¨μˆ˜μ— ν”„λ‘œν† νƒ€μž…μ„ μ‚¬μš©ν•˜μ—¬ ν•¨μˆ˜λ₯Ό λ“±λ‘ν•˜λ©΄ λ©”λͺ¨λ¦¬ λ‚­λΉ„λ₯Ό 쀄일 수 μžˆλ‹€.

​

예제 )

<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset = "UTF-8">
<title> ν•¨μˆ˜ </title>
<script>
	function CheckWeight(name, height, weight) {
		this.userName = name;
		this.userHeight = height;
		this.userWeight = weight;
		this.minWeight;
		this.maxWeight;
	}
	CheckWeight.prototype.getInfo = function() {
		var str = ""
		str += "이름: " + this.userName + ", ";
		str += "ν‚€: " + this.userHeight + ", ";
		str += "λͺΈλ¬΄κ²Œ: " + this.userWeight + "<br>";
		return  str;
	}
	CheckWeight.prototype.getResult = function( ) {
		this.minWeight = (this.userHeight - 100) * 0.9 - 5;
		this.maxWeight = (this.userHeight - 100) * 0.9 + 5;

		if(this.userWeight >= this.minWeight && 
		this.userWeight <= this.maxWeight) {
			return "정상 λͺΈλ¬΄κ²Œμž…λ‹ˆλ‹€";
		} else if(this.userWeight < this.minWeight) {
			return "정상 λͺΈλ¬΄κ²Œλ³΄λ‹€ λ―Έλ‹¬μž…λ‹ˆλ‹€";
		} else {
			return "정상 λͺΈλ¬΄κ²Œλ³΄λ‹€ μ΄ˆκ³Όμž…λ‹ˆλ‹€";
		}
	}    
	var jang = new CheckWeight("μž₯보리", 168, 62);
	var park = new CheckWeight("λ°•λ‹¬μž¬", 180, 88);
	console.log(jang);
	console.log(park);

	document.write(jang.getInfo());
	document.write(jang.getResult(), "<br>");

	document.write(jang.getResult === park.getResult);
</script>
</head>
<body>
</body>
</html>

 

 

 

β–Ά μžλ°”μŠ€ν¬λ¦½νŠΈ λ‚΄μž₯ ν•¨μˆ˜

λ‚΄μž₯ ν•¨μˆ˜λž€ μžλ°”μŠ€ν¬λ¦½νŠΈ 엔진에 λ‚΄μž₯된 ν•¨μˆ˜λ₯Ό λ§ν•œλ‹€.

μ’…λ₯˜

μ„€λͺ…

μ‚¬μš© 예

encodeURI()

문자λ₯Ό μœ λ‹ˆ μ½”λ“œκ°’μœΌλ‘œ μΈμ½”λ”©ν•œλ‹€.

(영문, 숫자, 일뢀 기호(;,/?:@&=+$)λŠ” μ œμ™Έ)

encodeURI("?query=κ°’");

→"?query=%EA%B0%91"

encodeURIComponent()

문자λ₯Ό μœ λ‹ˆ μ½”λ“œκ°’μœΌλ‘œ μΈμ½”λ”©ν•œλ‹€.

(영문, 숫자 μ œμ™Έ)

encodeURIComponent("?query=κ°’"); →

"%3Fquery%3D%EA%B0%91"

decodeURI()

μœ λ‹ˆ μ½”λ“œκ°’μ„ λ””μ½”λ”©ν•΄ λ‹€μ‹œ λ¬Έμžν™”ν•œλ‹€.

encodeURIComponent("?query=κ°’") → "%3Fquery%3D%EA%B0%91"

decodeURIComponent()

μœ λ‹ˆ μ½”λ“œκ°’μ„ λ””μ½”λ”©ν•΄ λ‹€μ‹œ λ¬Έμžν™”ν•œλ‹€.

decodeURIComponent("%3Fquery%3D%EA%B0%91") → "?query=κ°’"

parseInt()

λ¬Έμžμ—΄ 데이터λ₯Ό μ •μˆ˜ν˜• λ°μ΄ν„°λ‘œ λ°˜ν™˜ν•œλ‹€.

parseInt("5.12") → 5

parseInt("15px") → 15

parseFloat()

λ¬Έμžμ—΄ 데이터λ₯Ό μ‹€μˆ˜ν˜• λ°μ΄ν„°λ‘œ λ°˜ν™˜ν•œλ‹€.

parseInt("5.12") → 5.12

parseInt("65.5%") → 65.5

String()

λ¬Έμžν˜• λ°μ΄ν„°λ‘œ λ°˜ν™˜ν•œλ‹€.

String(5) → "5"

Number()

μˆ«μžν˜• λ°μ΄ν„°λ‘œ λ°˜ν™˜ν•œλ‹€.

Number("5") → 5

Boolean()

λ…Όλ¦¬ν˜• λ°μ΄ν„°λ‘œ λ°˜ν™˜ν•œλ‹€.

Boolean(5) → true

Boolean(null) → false

inNaN()

is Not a Number의 μ•½μžμ΄λ©° μˆ«μžκ°€ μ•„λ‹Œ λ¬Έμžκ°€ ν¬ν•¨λ˜μ–΄ 있으면 trueλ₯Ό λ°˜ν™˜ν•œλ‹€.

isNaN("5-3") → true

isNaN("53") → false

eval()

λ¬Έμžν˜• 데이터λ₯Ό λ”°μ˜΄ν‘œκ°€ μ—†λŠ” μžλ°”μŠ€ν¬λ¦½νŠΈ μ½”λ“œλ‘œ μ²˜λ¦¬ν•œλ‹€.

eval("15+5") → 20

λ°˜μ‘ν˜•

λŒ“κΈ€