본문 바로가기

Frontend/Javascript

데이터 입력과 출력 / alert

데이터 출력

  • window.alert(내용) : 내용을 알림창(경고창)으로 출력
  • console.log(내용)
  • document.write(내용) : 화면(문서)에 내용 출력
  • DOM(문서 객체 모델) 사용 : 예: body
console.log("hello");
console.log("<h2>태그 출력</h2>"); // 태그도 문자열의 일부로 인식
document.write("<h2>제목</h2>");  // 태그 반영되어 출력
document.body.innerHTML += "DOM 객체 innerHTML 속성 사용해서 출력";

데이터 입력

  • confirm() 함수로 입력 받기
  • prompt() 함수로 입력 받기
  • getElementsByTagName() : 태그 이름 사용
  • <input> 태그의  value 속성 사용
  • DOM (문서 객체 모델) 사용

confirm()

  • 자바스크립트 내장 함수
  • [확인]/[취소] 버튼이 있는 대화상자를 출력하고
  • [확인] 버튼을 누르면 true 값 반환
  • [취소] 버튼을 누르면 false 값 반환
  • 사용자의 액션을 한번 더 확인해 줄 때 유용 (결제하시겠습니까? 삭제하시겠습니까? 등)

prompt()

  • 자바스크립트 내장 함수
  • 사용자로부터 입력 받은 값을 반환
  • 두 개의 인수를 받을 수 있음
    • 첫 번째 값 = 메시지
    • 두 번째 값 = 입력받을 디폴트 값 (뭔가를 안내하거나 힌트 줄 때 유용)
    • 두 번째 인수는 선택 사항
prompt("출력 메시지");
prompt("출력 메시지", "기본값");

 

예제 - 1

const name = prompt("이름을 입력하세요.");
alter("환영합니다, " + name + "님");

// 백틱 사용
alter(`환영합니다, ${name}님`);

 

예제 - 2

const date = prompt("예약일을 입력하세요.", "2021-12-");

 

예제 - 3

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>Javascript </title>
		<script type="text/javascript">
			var answer = prompt("가장 좋아하는 과일은?", "과일이름");
			alert("가장 좋아하는 과일 : " + answer + "입니다.");
			document.write("가장 좋아하는 과일 : " + answer + "입니다.");
		</script>
	</head>
	<body>
		
	</body>
</html>

 

예제 - 4

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>Javascript </title>
		<script type="text/javascript">
			if (confirm("카드로 결제합니까?")) {
				var cardNum = prompt("카드번호를 입력하세요.", "xxxx-xxxx-xxxx-xxxx");
				document.write("카드번호 : " + cardNum);
			}
			else { document.write("카드로 결제하지 않습니다."); }
		</script>
	</head>
	<body>
		
	</body>
</html>

alert

  • 함수가 실행되면 메세지를 띄우고 사용자가 확인 버튼을 누르기 전까지는 계속 떠 있음
  • 사용자와 상호작용한다기보다는 일방적으로 알리는 용도로 사용
  • confirm은 확인과 취소버튼이 있지만 alter은 확인버튼만 있음
const isAdult = confirm("당신은 성인입니까?");
console.log(isAdult);

 

위 처럼 기본적으로 제공되는 창들의 단점

  • 창이 떠있는 동안 스크립트가 일시 정지됨
  • 창을 닫기 전까지는 이후 동작에 제한을 받음
  • 스타일링이 불가능하여 위치와 모양을 정할 수 없음
  • 브라우저마다 모양이 다름

이러한 단점에도 불구하고 기본 메서드는 빠르고 간단하게 적용 가능한 장점 때문에 굉장히 많이 사용됨