프로그래밍/JavaScript 자바스크립트

자바스크립트 - 반복문, if문, prompt, confirm

Heidong 2021. 9. 27. 20:03
반응형
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<link rel="icon" href="data:;base64,iVBORw0KGgo=">

<script type="text/javascript">
function sub1() {
	var s = prompt("수식을 입력 하세요", "");  // 3+5
	var result = eval(s);
	alert(s + "=" + result);
}

function sub2() {
	if(confirm("삭제 하시겠습니까 ?")) {
		alert("삭제 했습니다.");
	}
}
</script>

</head>
<body>

<h3>prompt와 confirm</h3>

<p>
	<button type="button" onclick="sub1()">계산기</button>
	<button type="button" onclick="sub2()">삭제</button>
</p>

</body>
</html>

- prompt() 함수는 문자를 입력 할 수 있는 창을 띄워줌

그리고 입력한 값을 활용 할 수 있음.

- 계산기 버튼에 onclick로 sub1() 함수를 호출한다. 

 

그리고 confirm() 함수로 예 아니오의 확인 메세지 창을 띄울 수 있다.

if문을 활용해서 확인을 눌렀을때와 취소를 눌렀을때의 이벤트를 설정 가능하다.

 

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<link rel="icon" href="data:;base64,iVBORw0KGgo=">
<script type="text/javascript">
// 래퍼 객체(wrapper object) : 숫자 문자열등 원시 타입이 프로퍼티에 접근하기 위해 생성되는 임시 객체
var s = "자바스크립트"; // 문자열 생성
var len = s.length; // String 프로퍼티인 length 속성 사용
console.log("문자열길이:"+len);

// String  객체
var s2 = new String("자바스크립트");
len = s2.length;
console.log("문자열길이:"+len);

console.log(s == s2); // true. ==(동등) 연산자는 리터널 값과 레퍼 객체를 동일하게 본다.
console.log(s === s2); // false. ===(일치) 연산자는 리터널 값과 레퍼 객체를 구별 한다.

console.log(typeof s);  // string 타입
console.log(typeof s2); // object 타입

// 전역 값 속성
console.log(NaN === NaN); // false
console.log(isNaN(NaN)); // true

</script>
</head>
<body>

<h3>전역 속성</h3>

</body>
</html>

- String과 Object의 관계를 비교할때 조심 해야 한다.

- s1과 s2를 == 이꼴을 2개로 비교를 하면 true가 나오지만 === 3개로 비교하면 false가 나온다.

그리고 NaN인지 아닌지 확인하고 싶을때는 isNaN() 함수를 사용하자.

 

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<link rel="icon" href="data:;base64,iVBORw0KGgo=">
<script type="text/javascript">
function result() {
	// var n = document.getElementById("num").value; // id로 접근
	var n = document.querySelector("#num").value; // 선택자로 접근
	/*
	if(! n ) {
		document.getElementById("num").focus();
		return;
	}
	
	if( isNaN(n) ) {
		document.getElementById("num").focus();
		return;
	}
	*/
	n = parseInt(n);
	
	if(n % 2 == 0 && n % 3 == 0) {
		alert(n + "은 2 또는 3의 배수 입니다.");
	} else if(n % 2 == 0) {
		alert(n + "은 2의 배수 입니다.");
	} else if(n % 3 == 0) {
		alert(n + "은 3의 배수 입니다.");
	} else {
		alert(n + "은 2 또는 3의 배수가 아닙니다.");
	}
}
</script>
</head>
<body>

<p>
	숫자 : <input type="text" id="num">
	<button type="button" onclick="result()">확인</button>
</p>

</body>
</html>

- 자바스크립트에서 if문과 switch문 사용 가능하다.

 

 

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<link rel="icon" href="data:;base64,iVBORw0KGgo=">
<script type="text/javascript">
function result() {
	var n = document.querySelector("#num").value;
	
	if( isNaN(n) ) {
		document.querySelector("#num").focus();
		return;
	}
	
	var s;
	n = parseInt(n);
	
	// Math.floor(x) : x를 넘지 않는 최대 정수
	switch( Math.floor(n / 10) ) {
	case 10:
	case 9: s = "A"; break;
	case 8: s = "B"; break;
	case 7: s = "C"; break;
	case 6: s = "D"; break;
	default: s = "F"; break;
	}
	
	alert(n + " : " + s)
}
</script>
</head>
<body>

<form action="javascript:result();">
	<p>
		<input type="text" name="num" id="num" required="required" placeholder="숫자">
		<button>확인</button>
	</p>	
</form>

</body>
</html>

switch문을 활용해서 점수에 해당하는 알파벳을 뽑아내는 코드

 

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

<script type="text/javascript">
var s, n;

// while
s = 0;
n = 0;
while(n < 10) {
	n++;
	s += n;
}
console.log("while : " + n + ", " + s); // 10, 55

// do~while
s = 0;
n = 0;
do {
	n++;
	s += n;
} while(n < 10);
console.log("do~while : " + n + ", " + s); // 10, 55

// for
s = 0;
for(n = 1; n <= 10; n++) {
	s += n;	
}
console.log("for : " + n + ", " + s); // 11, 55

</script>

</head>
<body>

<h3> 반복문 </h3>


</body>
</html>

- while, do-while, for문의 반복문들을 사용한 모습

 

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<link rel="icon" href="data:;base64,iVBORw0KGgo=">
<script type="text/javascript">
function result() {
	var dan = document.querySelector("#num").value;
	var out;
	
	if( ! /^[1-9]{1}$/.test(dan) ) {
		document.querySelector("#num").focus();
		return;
	}
	
	dan = parseInt(dan);

	out = "<p style='font-weight:bold; color:blue;'>** " + dan +"단 **</p>";
	for(var n = 1; n <= 9; n++) {
		out += dan + " * " + n + " = " + (dan*n) + "<br>";
	}
	document.querySelector("#resultLayout").innerHTML = out;	
}
</script>
</head>
<body>

<p>
	<input type="text" id="num" placeholder="원하는 단">
	<button type="button" onclick="result();">확인</button>
</p>
<hr>
<div id="resultLayout"></div>


</body>
</html>

- 자바스크립트에서 구구단 출력하기

document.querySelector("#resultLayout").innerHTML = out; 

이 기능으로 인해서 HTML 부분에서 id 코드가 resultLayout인 부분에 출력이 됨.

 

out = "<p style='font-weight:bold; color:blue;'>** " + dan +"단 **</p>";

이런식으로 변수에 값 넣을때 style도 줄 수 있음.

 

 

반응형