[HTML/CSS/JS] DAY5
1. 함수의 개요 및 작성, 종류
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>함수 작성,종류(1).html</title>
<script>
/*
프로그램을 작성(=회사 창업)
함수->어떤기능(데이터 추가,수정,삭제,조회,계산)을 가진 최소한의 작업단위(=직원)
함수의 종류->1)내장 함수(ex alert,prompt,,) 2)사용자 정의 함수=>새로운 기능작성
함수의 기능별로 종류
1.매개변수 X , 반환값(=보고) X =>단순하고 반복적인 일을 주로 하는 경우
2.매개변수 O ,반환값 X => 데이터를 입력=>계산,저장,출력
3.매개변수 O ,반환값 O => 데이터를 입력=>계산목적,웹프로그래밍
*/
//1.매개변수 X , 반환값(=보고) X
function print1() {
document.write("단순하고 반복적인일을 주로 담당<br>");
}
//2.매개변수 O ,반환값 X
function print2(su) { //출력목적->자료형이 정해져 있지 않다.(문자 or 숫자 or 논리적인값)
//자료형(타입=>컴퓨터가 처리해야할 값의 범위(숫자,문자,논리적인값)
//String(문자) , int(숫자), boolean (논리적인값)
document.write("입력받은 값은=>" + su + "입니다.<br>");
}
function print3(su, su2) { //계산->출력
document.write("su+su2=>" + (su + su2) + "입니다.<br>");
}
//3.매개변수 O ,반환값 O =>사용범위(변수가 저장할 수 있는 영역)
function print4(su, su2) { //30,40
var result = su + su2
//형식)return 계산한 결과값(변수) or 수식(=계산식) or 객체
return result;
}
</script>
</head>
<body>
<script>
//함수호출=>업무지시
print1()
print2(30); //print2라는 함수를 호출하면서 매개변수 30을 전달
print2("자바스크립트 함수 연습");
print3(10, 20);
//반환값이 있는 함수를 호출=>형식) var 반환값저장변수=함수명(매개변수명,,,)
var hap = print4(30, 40); //함수는 호출했지만 보고X
document.write("반환받은 값(hap)=>" + hap + "<p>");
alert(print4(70, 30)) //중첩함수(함수 내부에 또 다른 함수를 호출하는 경우)
</script>
<!--
1.버튼을 클릭했을때 함수호출 or 링크문자열을 클릭했을때 함수호출
onclick="자바스크립트 구문;구문2;구문3" => "문자열 안에서는 " 사용불가->'을 사용해야 한다.
2.링크문자열을 클릭=>함수호출
<a href="#" onclick="호출할 함수명() or 호출할 함수명(~)">링크문자열</a>
-->
<input type="button" value="계산목적" onclick="alert('함수호출 연습')">
<input type="button" value="함수호출" onclick="print2(12)">
<a href="#" onclick="print2('매개변수 전달')">함수호출유형 연습</a>
</body>
</html>
2. 내장함수(prompt,alert,if문)
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>내장함수(prompt,alert,if문)(2).html</title>
<!--
문장->순차문=>써진 순서대로 실행이 되는 문장
제어문=>어떤 특정한 조건에 따라서 실행 O or 실행 X 있는 문장
종류=>조건문,선택문,반복문,탈출문
형식) if문=>조건식(둘중에 하나를 체크)에 따라서 어떻게 실행?
if (조건식) =>변수,수식(계산식->논리,관계,,,)
수행1 (참)
if (조건식) =>변수,수식(계산식->논리,관계,,,)
수행1 (참)
else
수행2(거짓)
-->
</head>
<body>
<script>
/*
window.alert("경고성 문구를 출력할때 사용");
alert("두줄을 나누어서\n출력\n함"); //문자열\n문자열2,,,
형식) var 변수명=호출할 함수명(매개변수,,,)
*/
var name = prompt("당신의 이름을 입력하세요?") //매개변수 O, 반환값 O
// 관계연산자=> ==(값이 같은지 확인), !=(값이 같지 않은경우)
// null(값이 들어가 있지 않은 상태)(화면X) ,빈문자열=>""(화면 X)
if (name != "") //값을 입력을 받았다면
alert("당신의 이름은" + name + "이군요");
else //입력을 하지 않은 상태
alert("이름을 먼저 입력하세요!");
</script>
</body>
</html>
3. 내장함수(confirm)
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>내장함수(confirm)(3).html</title>
</head>
<body>
<script>
/*
형식) confirm('동의를 구하는 메서지?")
*/
var result = confirm("정말로 회원탈퇴하시겠습니까?"); //매개변수 O, 반환값 O
//alert(result)//true(확인버튼) or false(취소버튼)
if (result == true) //사용자가 확인버튼을 눌렀다면
alert("당신은 정상적으로 회원탈퇴\n처리되었습니다.");
else //result==false
alert("회원탈퇴가 취소되었습니다.");
</script>
</body>
</html>
4. 다중 if문
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>다중 if문(4).html</title>
<!--
조건식에 따라서 처리할 문장이 하나 이상인 경우에 처리->실행속도가 느려진다.
if(조건식1)
수행1
else if(조건식2)
수행2
else if(조건식3)
수행3
,,,
else
수행n
-->
</head>
<body>
<script>
var qs=prompt("당신이 좋아하는 언어를 선택? 1.자바 2.자바스크립트 3.C언어");
//조건식이 한개->여러개 나오는 경우 연산자(and(&&), or ||)
if((qs=="자바") || (qs==1))
document.write("자바를 선택하셨군요!");
else if((qs=="자바스크립트") || (qs==2))
document.write("자바스크립트를 선택하셨군요!");
else //else if(qs=="C언어")
document.write("C언어를 선택하셨군요!");
</script>
</body>
</html>
5. 계산문제
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>계산문제(5).html</title>
<script>
function sum() {
//alert("sum함수 호출됨") =>합계를 구해서 출력=>total=78+34+90 alert(total)
//1. document.form이름.inputbox이름.속성명(value)
var k = document.myForm.kor.value; // "90"=>문자열 상수(숫자로 된 문자열)
var e = document.myForm.eng.value; //"80" =>숫자로 변환시켜주는 함수->parseInt()
var m = document.myForm.mat.value; //70"
var total = parseInt(k) + parseInt(e) + parseInt(m); //"90"+"80"+"70"="908070"
//var total=parseInt("90")+parseInt("80")+parseInt("70");
alert(total)
}
</script>
</head>
<body>
<form name="myForm" method="post" action="cal.jsp">
국어:<input type="text" name="kor" placeholder="국어점수 입력"><br>
영어:<input type="text" name="eng" placeholder="영어점수 입력"><br>
수학:<input type="text" name="mat" placeholder="수학점수 입력"><br>
<input type="button" value="점수출력" onclick="sum()">
<input type="reset" value="지우기" onclick="document.myForm.kor.focus()">
</form>
</body>
</html>
6. 태그의 내용을 변경
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>태그의 내용을 변경(6).html</title>
<script>
function change() {
/* 태그의 id속성->1) 스타일 적용(id 선택자) ->div#test {}
2)div태그의 정보를 얻어올 목적(=객체 정보)=>함수
document.getElementById("id값")
*/
var ch = document.getElementById("test2"); //태그의 id값이 test2인 태그정보를 가져오라
//alert(ch)//div태그 자체를 의미->[object ElementDiv~]
//alert(ch.innerHTML)//ch.innerHTML속성(태그의 내용을 얻어올때 사용하는 속성)
//변경(=수정)=>태그정보.innserHTML="변경시킬 내용을 저장"
ch.innerHTML = "화면상에 동적으로 변경되었습니다.";
}
</script>
</head>
<body>
<div id="test">자바스크립트의 변수,연산자,함수의 종류,제어문(if)</div>
<div id="test2">DOM의 개요 및 활용법</div>
<form>
<input type="button" value="변경" onclick="change()">
</form>
</body>
</html>
7. 이벤트 정리
이벤트=>운영체제가 인식가능한 사용자들의 모든 행동(키보드,마우스)+스크린터치
이벤트 발생 대상자 종류 이벤트핸들러(EventHandler)->처리할 내용을 가진 함수
1. click 마우스 클릭 on+이벤트종류명->onclick=연결시킬 함수
2. load 제일먼저 문서(html)을 읽어들일때 ->onload="?"
3. unload ->현재 사이트->다른 사이트로 이동 ->onunload(IE 적용O, chrome 적용X)
4. change->콤보박스에서 특정한 항목을 선택->발생되는 이벤트 onchange
5. mouseover->마우스를 갖다대면 발생->onmouseover
6. mouseout->특정위치에서 마우스포인터가 벗어날때->onmouseout
7. Blur->입력하는 경우(input type="text") 커서가 이동할때 발생시키는 이벤트
-> onBlur="" 커서를 다음 항목에 이동시키기전에 전의 데이터를 제대로 입력했는지 체크하고 싶을때
태그를 구분할때 -> id와 name속성(데이터 입력)을 두개 다 사용이 가능
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>이벤트 정리(7).html</title>
<!--
이벤트=>운영체제가 인식가능한 사용자들의 모든 행동(키보드,마우스)+스크린터치
이벤트 발생 대상자 종류 이벤트핸들러(EventHandler)=>처리할 내용을 가진 함수
1.click 마우스 클릭 on+이벤트종류명=>onclick=연결시킬 함수
2.load 제일먼저 문서(html)을 읽어들일때 =>onload="?"
3.unload ->현재 사이트->다른 사이트로 이동 =>onunload(IE 적용O, chrome 적용X)
4.change->콤보박스에서 특정한 항목을 선택->발생되는 이벤트 onchange
5.mouseover->마우스를 갖다대면 발생->onmouseover
6.mouseout->특정위치에서 마우스포인터가 벗어날때->onmouseout
7.Blur->입력하는 경우(input type="text") 커서가 이동할때 발생시키는 이벤트->
onBlur="" 커서를 다음 항목에 이동시키기전에 전의 데이터를 제대로 입력했는지 체크하고 싶을때
태그를 구분할때 ->id와 name속성(데이터 입력)을 두개 다 사용이 가능
-->
</head>
<body onload="alert('환영합니다.')" onunload="alert('다음에 또')">
<a href="http://www.daum.net" onmouseover="document.img.src='../images/kid2.gif'"
onmouseout="document.img.src='../images/kid.gif'">
<img src="../images/kid.gif" name="img">
</a>
<img src="../images/kid3.gif" name="img2">
</body>
</html>
8. 배경색을 변경
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>배경색을 변경(8).html</title>
<style>
div#box {
width: 200px;
height: 200px;
background: #ffffff;
border: 2px solid black;
}
</style>
<script>
function setRed() {
//id가 box인 div태그를 얻어와서 배경색을 red로 설정하라
var box = document.getElementById("box");
//alert(box); //[object~] style="background:red" //태그정보.속성=변경시킬 값
//형식) 태그정보.상위속성명.하위속성명=변경할값(저장할 값)
box.style.background = "#ff0000";
}
function setGreen() {
var box = document.getElementById("box");
box.style.background = "#00ff00";
}
function setBlue() {
var box = document.getElementById("box");
box.style.background = "#0000ff";
}
</script>
</head>
<body>
<input type="button" value="Red" onclick="setRed()">
<input type="button" value="Green" onclick="setGreen()">
<input type="button" value="Blue" onclick="setBlue()">
<p>
<!-- <div id="box" style="background:red"></div> -->
<div id="box"></div>
<div id="box2"></div>
</body>
</html>
appendChild(),removeChild,replaceChild,->태그 함수
setAttribute()함수, getAttribute()함수->속성에 대한 함수
document.getElementById()함수,,,
createElement()->태그를 생성하는 함수
createTextNode()->텍스트를 생성하는 함수