본문 바로가기
Java Script/jQuery

동일 예제 JavaScript VS jQuery 비교!

by 워니 wony 2019. 5. 14.

학생의 성적을 가지고, 총점과 평균을 구해서 테이블로 보여주는 코드 구현

자바스크립트와 제이쿼리를 사용하여 동일한 예제를 구현 하는 두개의 차이점을 명확하게 알 수 있다.

제이쿼리의 경우 자바스크립트의 비해 조금 더 쉽게, 짧은 코드로 구현이 가능하게 해준다.

 

아래와 같은 배열을 활용하여 테이블을 만드는 예제

var arr = [];
arr.push({name:"박자바",kor:100,eng:100,math:95});
arr.push({name:"김파이",kor:80,eng:75,math:100});
arr.push({name:"홍코드",kor:95,eng:90,math:87});

 

자바스크립트 코드

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script type="text/javascript">
	var arr = [];
	arr.push({name:"박자바",kor:100,eng:100,math:95});
	arr.push({name:"김파이",kor:80,eng:75,math:100});
	arr.push({name:"홍코드",kor:95,eng:90,math:87});

	for(var i in arr)
	{
		arr[i].getSum = function() {
			return this.kor+this.eng+this.math;
		}
		
		arr[i].getAvg = function() {
			return this.getSum()/arr.length;
		}
	}
	
	function writeA() {
		var tb = document.getElementById("tb");
		
		for(i in arr)
		{
			
			var tr = document.createElement("tr");
			
			var tdName = document.createElement("td");
			var tdSum = document.createElement("td");
			var tdAvg = document.createElement("td");
			
			var name = arr[i].name;
			var sum = arr[i].getSum();
			var avg = arr[i].getAvg();
			
			var txtName = document.createTextNode(name);
			var txtSum = document.createTextNode(sum);
			var txtAvg = document.createTextNode(avg);
			
			tdName.appendChild(txtName);
			tdSum.appendChild(txtSum);
			tdAvg.appendChild(txtAvg);
			
			tr.appendChild(tdName);
			tr.appendChild(tdSum);
			tr.appendChild(tdAvg);
			
			tb.appendChild(tr);
		}
	
	}
	
	
</script>
</head>
<body>
	<button onclick="writeA()">출력</button>
	<table border="1" width="80%" id="tb">
		<tr>
			<td>이름 </td>
			<td>총점</td>
			<td>평균</td>
		</tr>	
	</table>
	
</body>
</html>

 

 

제이쿼리 코드

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script type="text/javascript" src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
<script type="text/javascript">
	var arr = [];
	arr.push({name:"박자바",kor:100,eng:100,math:95});
	arr.push({name:"김파이",kor:80,eng:75,math:100});
	arr.push({name:"홍코드",kor:95,eng:90,math:87});

	for(var i in arr)
	{
		arr[i].getSum = function() {
			return this.kor+this.eng+this.math;
		}
		
		arr[i].getAvg = function() {
			return this.getSum()/arr.length;
		}
	}
	
	$(function() {
		
		$("#btn").click(function() {
			
			$.each(arr, function(i,student) {
				var tr = $("<tr></tr>");
				
				var tdName = $("<td></td>").html(student.name);
				var tdSum = $("<td></td>").html(student.getSum());
				var tdAvg = $("<td></td>").html(student.getAvg());
				
				tr.append(tdName, tdSum, tdAvg);
				
				$("#tb").append(tr);
			});
		});
	});
			
	
	
</script>
</head>
<body>
	<button id="btn">출력</button>
	<table border="1" width="80%" id="tb">
		<tr>
			<td>이름 </td>
			<td>총점</td>
			<td>평균</td>
		</tr>	
	</table>
	
</body>
</html>

 

 

반응형

댓글