
전날 과제 (flex 적용) 드래그 된 부분 수정함
css는 html head태그에 삽입하지 않고, 외부페이지로 분리하는게 일반적
자바까지 배우고 시험 3/20(과정 중 시험 총 네 번)
→ 동적인 처리(제이쿼리, 에이작스)





http://localhost:8088/clientweb/js_basic/js_basic_test2.html

http://localhost:8088/clientweb/js_basic/js_basic_test3.html
1)바디태그 내부에 정의
2)헤드태그 내부에 정의
3)외부문서
4)인라인으로 태그 내부에 정의
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<!-- 3. 외부문서로 정의하고 연결해서 사용하는 방법 -->
<script type="text/javascript" src="../common/js/test1.js"></script>
<!-- 2. 헤드태그 내부에서 정의하고 사용하는 방법 -->
<script type="text/javascript">
console.log("head태그 내부");
function test(){//함수정의
alert("안녕하세요");
console.log("함수실행중");
document.write("함수실행결과");
}
</script>
</head>
<body>
<!-- 1. 바디태그 내부에서 정의하고 사용하는 방법 (mime)-->
<script type="text/javascript">
document. write("<h1>브라우저에 html태그를 실행해서 출력 - 연습용</h1>");
/* 도큐먼트는 객체임. 미리만들어서 제공됨 */
console.log("디버깅용 - 자바의 System.out.println과 비슷")
test();//함수호출
</script>
<h1>안녕</h1>
<!-- 4. 인라인으로 태그 내부에 자바스크립트 코드를 삽입(이벤트 핸들러를 이용해서 연결) -->
<input type="button" value="자바스크립트 명령어 실행하기" onclick="alert('자바스크립트 명령어 실행')"/>
<input type="button" value="자바스크립트 함수 호출하기" onclick="test()"/>
<input type="button" value="자바스크립트 외부문서에 정의된 함수 호출하기" onclick="test2()"/>
<a href="javascript:test2()">자바스크립트 함수 호출</a>
</body>
</html>
① exam.js작성하기
test1함수 - alert실행
test2함수 - confirm실행
test3함수 - prompt실행
② 문서에서 버튼을 정의하고 onclick이벤트핸들러로 test1함수 연결하기
③ 문서에서 문자열을 정의하고 하이퍼링크로 test2함수 연결하기
④ 문서에서 image를 추가하고 하이퍼링크로 test3함수 연결하기
=> 이미지에 하이퍼링크로 함수 연결
⑤ 문서에 이미지를 추가하고 이미지의 onclick이벤트핸들러에서 test1함수 연결하기
⑥ 문서에 스크립트를 추가하고 콘솔에 메시지 출력하기
=> <script></script>안에 정의하기
⑦ 실행화면캡쳐 후 소스파일과 제출하기

http://localhost:8088/clientweb/js_basic/js_basic_exam.html
var
: 변수를 선언하고 중복(재) 선언이 가능하다. ⇒변수가 건들여질수있다는 뜻
재할당도 가능
let
: 변수를 선언하고 내부에서 중복 선언이 불가
재할당은 가능, 권장하는 변수선언문
const
: 상수정의
상수는 변경될 수 없는 고정된 값
상수로 변수를 정의하면 할당된 값을 변경할 수 없다.
재선언 및 재할당 불가능
https://joyhong-91.tistory.com/7
증감 전위, 후위 연산자 이해하기 쉽게 설명된 글
+연산자는 연결연산자의 의미
+연산자 앞에 문자열이 있으면 뒤에있는 숫자는 문자열화 시킨다.
%는 나머지 구하기 연산자임
document.write(10%3);
=> 1
증감연산자
++ : 1씩 증가
--: 1씩 감소
후위 연산자(x++, x--) : 증가, 감소 전 값을 돌려줌
전위 연산자(++x, --x) : 증가, 감소 후 값을 돌려줌

비교연산자
== : 똑같은지 데이터만 비교(같으면 true)
=== : 똑같은지 타입과 데이터 모두 비교(둘 중 하나라도 같지 않으면 false, 타입과 데이터 둘다 같아야만 true)
!= : 데이터 다르면 true, 같으면 false, 다른지 데이터만 비교(!는 not의 의미)
!== : 타입이 다르거나, 데이터가 다르거나 둘 중 하나라도 다르면 true, 타입과 데이터 둘 다 같으면 false


if문
if(조건){
//조건을 만족하는 경우 실행할 문장
}
[if~else]
if(조건){
//조건을 만족하는 경우 실행할 문장
}else{
//조건을 만족하지 않을 경우 실행할 문장
}
[if~else if~ else if ... else~]
if(조건1){
}else if(조건2){
}else if(조건3){
}...
}else{
}
<script type="text/javascript">
//1. 조건이 만족하는 경우에만 실행할 명령문이 있는 경우
//=>num1이 90이상이면 통과
let num1 = 98;
if(num1>=90){
//조건을 만족하는 경우 실행할 문장
alert("통과 - 조건만족");
}
alert("종료"); //조건만족이 안되면 블럭안으로 안들어가고 건너뛰고 종료됨
//2. 조건이 만족하는 경우와 조건이 만족하지 않는 경우 모두 실행할 명령문이 있다면
if(num1>=90){
//조건을 만족하는 경우 실행할 문장
document.write("<h2>합격</h2>");
}else{
//조건을 만족하지 않는 경우 실행할 문장
document.write("<h2>불합격</h2>");
}
</script>
중첩도 가능함(입력 안하고 취소 눌렀을 시 작업 안되는거 만들기 추가했을 때)
<body>
<!-- prompt로 숫자를 입력 받아서 5의 배수이면
"5의 배수" 라는 문자열을 document에 출력하고 c2.jpg를 출력하기
5의 배수가 아니면 "5의 배수가 아닙니다."라는 문자열을 document에 출력하고 garden01.jpg를 출력하기 -->
<script type="text/javascript">
let num = prompt("숫자를 입력하세요");
alert(num);
if(num==null){
alert("취소버튼을 누르면 작업할 수 없습니다.")
}else{
if(num%5 == 0){
document.write("<h2>5의 배수</h2>");
document.write("<img src='../images/c2.jpg'>");
}else{
document.write("<h2>5의 배수가 아닙니다.</h2>");
document.write("<img src='../images/garden01.jpg'>");
}
}
</script>
[조건]
성별을 평가할 수 있는 값을 prompt로 입력 받으세요.(1,2,3,4....)
1,2,3,4가 아닌 값이 입력되면 "잘못 입력"이라는 메시지를 출력하세요
성별이 1,2,3,4중 한 값이 입력 되었다면 다른 prompt를 이용해서 나이 값을 입력 받으세요.
성별이 1, 3 중 한 값이 입력되고 나이가 20세 이상이면 "성인남자"출력
성별이 1,3 중 한 값이 입력되고 나이가 20세 미만이면 "청소년남자" 출력
성별이 2,4 중 한 값이 입력되고 나이가 20세 이상이면 "성인여자"출력
성별이 2,4 중 한 값이 입력되고 나이가 20세 미만이면 "청소년여자"출력
[힌트]
먼저 성별이 제대로 입력되었는지 평가하고 성별이 제대로 입력되면 나이를 평가할 수 있도록 작업하세요.
성별이 제대로 입력되면 남자인지 여자인지 평가한 후
성인인지 청소년인지 평가해야 하므로 조건의 그룹은 3개입니다.
조건이 3개라는 것은 if를 3개 중첩해서 써야 한다는 의미입니다.

입장객 수와 한 줄에 몇 명씩 앉을 것인지 입력받아 총 몇 줄이 필요한지 계산해보도록 하겠습니다.
예) 입장객수: 56, 한 줄에 앉을 인원수:5
[출력형태]
자리배치도
모두 12개의 줄이 필요합니다.

switch문
switch(조건을 평가할 수 있는 변수, 연산식, 메소드 호출){
case 평가할 값1 :
case 평가할 값2 :
case 평가할 값3 :
case 평가할 값4 :
…
default:
문장
}
let ssn = prompt("주민번호 7번째 값 입력");
alert(typeof ssn);
//typeof : 타입을 정의하지 않지만 내부적으로 타입 가짐
//switch문은 기본옵션이 밖으로 못빠져나오고 밑으로 떨어지는 특성->break줘야함
switch (ssn){
case "1" :
alert("남자");
break;
case "2" :
alert("여자");
break;
case "3" :
alert("남자");
break;
case "4" :
alert("여자");
break;
default :
alert("기타");
}
이하 prompt문 생략
switch(ssn){
case "1" :
case "3" :
alert("남자");
break;
case "2":
case "4":
alert("여자");
break;
default :
alert("기타");
}
이런식으로 case 여러개에 결과 하나 줄 수 있음
switch(ssn){
case "test1":
alert("문자열1");
break;
case "test2":
alert("문자열2");
}
"test1" 입력하면 "문자열1" 출력
alert(ssn/10);
//자바스크립트에서는 소수의 비교가 가능
switch(ssn/10){
case 9.9:
alert("문자열1");
break;
case 9.8:
alert("문자열2");
}
parseInt
'숫자모양을 하고 있는 문자열'을 숫자로 변경하기
let num1 = prompt("숫자1");
let num2 = prompt("숫자2");
alert(num1+num2);
num1=100, num2=200 줄때 얼럿 100200나옴
let num1 = parseInt(prompt("숫자1"));
let num2 = parseInt(prompt("숫자2"));
alert(num1+num2);
num1=100, num2=200 줄때 얼럿 300나옴
switch/parseInt exam
prompt로 점수를 입력받아 수, 우, 미,양, 가 출력하기
90 ~ 100 : 수
80 ~ 89 : 우
70 ~ 79 : 미
60 ~ 69 : 양
0 ~ 59 : 가
100점 이상이나 0점 미만의 점수를 입력받으면 "점수잘못입력"출력하기
document.write(h1태그로 출력하기)

for, while, do-while
문법이 자바와 거의 유사
for문
for : 반복횟수를 체크할 숫자를 저장할 변수가 무조건 1개 있어야 한다.
for(초깃값; 조건; 증가식){
실행할 명령
}
자바스크립트 문자열을 5번 출력하기
for(i=1; i≤5; i=i+1){
document.write("<h2>자바스크립트</h2>")
}
i=i+1 ⇒ i++
for(i=1; i≤5; i++){
document.write("<h2>자바스크립트</h2>")
}
document.write("<hr/>");
for(let i=27;i<=31;i++){
document.write("<h2>자바스크립트:"+i+"</h2>");
}
document.write("<hr/>");
for(let i=20;i<=28;i=i+2){
document.write("<h2>자바스크립트:"+i+"</h2>");
}

<script type="text/javascript">
let i;
let sum=0;
for(i=1; i<=100; i++){
sum = sum+i; //오른쪽꺼 계산해서 왼쪽에 넣는 규칙
}
document.write(sum);
</script>
i=1 일 때, sum=0+1=1
i=2 일 때, sum=1+2=3
...
i=100일때, sum=4950+100=5050
<script type="text/javascript">
let sum1=0;
for(let i=1; i<=100; i++){
sum1 = sum1+i;
}
document.write("총합: "+sum1);
document.write("<hr/>");
let sum2=0;
for(let i=1; i<=100; i=i+2){
sum2 = sum2+i;
}
document.write("홀수합: "+sum2);
document.write("<hr/>");
let sum3=0;
for(let i=2; i<=100; i=i+2){
sum3 = sum3+i;
}
document.write("짝수합: "+sum3);
</script>
for(let i=1; i<=100; i=i+2)여기서 증가식 i+2만 쓰면 로딩중만 뜸, i=i+2로 쓰기
exam : prompt로 입력받은 구구단을 출력하세요


표 없이도 가능

for 이미지

첫째줄 i=1일때 r=1부터 r<=5라서 첫째줄 5개 이미지 출력
둘째줄 i=2일때 r=2부터 r<=5라서 둘째줄 4개 이미지 출력

첫째줄 i=1일때 r<=1라서 첫째줄 1개 이미지 출력
둘째줄 i=2일때 r<=2라서 둘째줄 2개 이미지 출력
for_break test

row==3, 즉 세번째 줄부터 멈춰져서 출력이 row==2까지만 됨

row==위와 달리 하위 for문에 있어서 셋째줄만 출력이 되지 않고 넷째줄부터는 다시 상위 for문으로 올라가서 출력이 이어짐
for_continue test

continue랑 break는 자바에서도 쓰니 구분하기
break는 중단하고 나오는거
continue는 컨티뉴 이하문장이 건너뛰기가됨

2안에..너있다
while문
while(조건){
실행할 명령
}
do{
실행할 명령
}while(조건)
while문은 조건이 true인 동안 명령 반복 실행(like for문)
조건이 false라면 명령은 한번도 실행하지 않을 수 있음
{}으로 블록을 만들어 여러 명령을 반복할 수 있음
do~while문은 조건이 맨 뒤에 붙음
일단 명령을 한번 실행한 후 while문에서 조건을 체크
조건이 false라도 일단 명령은 최소 한번 실행됨
<script type="text/javascript">
//자바스크립트 5줄 출력
let num = 1;
while(num<=5){
//document.write("<h2>자바스크립트<h2>"); //num이 트루니까 무한루프됨 오류뜸
console.log("자바스크립트:"+num);
num++;
}
document.write("<hr/>");
//자바스크립트 10줄 출력
num = 1;
while(true){
document.write("<h2>자바스크립트</h2>");
if(num==10){
break;
}
num++;
}
</script>
<script type="text/javascript">
let num=10;
while(num>10){
document.write("<h4>자바스크립트</h4>");
}
document.write("<hr/>");
//조건에 만족안해서 아예안들어감
do{
document.write("<h4>자바스크립트</h4>");
}while(num>10)
document.write("<hr/>");
//일단 실행하고 조건 만족하면 다시 위로감, 만족하든 안하든 1번은 실행됨
</script>
3.함수
4.이벤트
5.내장객체
6.브라우저객체
7.DOM
8.JQuery
백엔드까지 연동하면
1.JSon
2.Ajax
3.프로토타입
고급
자바스크립트 프레임워크 및 라이브러리
본 포스팅은 멀티캠퍼스의 멀티잇 백엔드 개발(Java)의 교육을 수강하고 작성되었습니다.