confirm, open

confirm : 확인, 취소 버튼을 누를 수 있는 창을 띄움

open : 창을 띄움

<!DOCTYPE html>
<html lang="ko">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <script>
      window.onload = () => {
        let myC = document.getElementById("myC");
        myC.addEventListener("click", myConfirm);
        let myO = document.getElementById("myO");
        myO.addEventListener("click", myOpen);
      };
      function myOpen() {
        // open("https://www.naver.com");
        // 새 창에서 열림
        
        // window.open("https://www.naver.com", "_self");
        // 자기 자신 창에서 열림

        // window.open("ex31.html", "", "width=500, height=500");
        // 새창에 크기를 조절하여 ex31.html 파일 열기

        window.open("popup.html", "", "width=500, height=500");
      }
      const myConfirm = () => {
        let result = confirm("처음 방문???");
        console.log(result);
        let msg = "";
        if (result) {
          msg = "처음 방문 감사합니다!!!";
        } else {
          msg = "재방문 감사합니다!!!";
        }
        document.getElementById("myP").innerHTML = msg;
      };
    </script>
  </head>
  <body>
    <button type="button" id="myC">클릭</button>
    <p id="myP"></p>
    <input type="button" id="myO" value="창열기" />
  </body>
</html>

ex32.html

<script>
  myClose = () => {
    window.close();
  };
</script>

<h1>- 공 지 사 항 -</h1>
<h3>행복한 하루</h3>
<p></p>

<!-- 아래 두 코드는 동일한 코드 -->
<!-- <input id="cl" type="checkbox" onclick="myClose()" /> -->
<input id="cl" type="checkbox" onclick="window.close()" />
<label for="cl">하루동안 열지 않음</label>

popup.html

코드 실행
728x90

 

 

 

 

 

자바스크립트로 유효성 검사하기

<!DOCTYPE html>
<html lang="ko">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <script>
      function myFocus() {
        let pwd = document.getElementById("pwd");
        console.log(pwd.value);
        if (pwd.value == "") {
          alert("password 는 필수 항목입니다");
          pwd.focus();
        } else {
          document.getElementById("copy").value = pwd.value;
          pwd.value = "";
        }
      }
      const pwdChk = () => {
        let pwd = document.getElementById("pwd");
        let pwdC = document.getElementById("pwdCheck");
        if (pwd.value !== pwdC.value) {
          alert("비밀번호가 일치하지 않습니다.");
          pwd.value = "";
          pwdC.value = "";
          pwd.focus();
        }
      };
    </script>
  </head>
  <body>
    <!-- <form action="ex30.html" method="get">
      <input type="text" id="txt" required /><br />
      <input type="text" id="pwd" /><br />
      <input type="text" id="copy" /><br />
      <input type="submit" value="클릭" onclick="myFocus()" /><br />
    </form> -->

    <input type="text" id="txt" placeholder="id" /><br />
    <input type="password" id="pwd" placeholder="pwd" /><br />
    <input
      type="text"
      id="pwdCheck"
      placeholder="pwdCheck"
      onchange="pwdChk()"
    /><br />
    <input type="text" id="copy" placeholder="copy" /><br />
    <input type="button" value="클릭" onclick="myFocus()" /><br />
  </body>
</html>
pwd 입력 : 111, 코드 실행

 

728x90

 

 

 

 

 

js 파일로 자바스크립트 코드 관리하기

- 비슷한 기능들을 파일로 따로 분리해서 사용

- 함수와 변수들을 Object ( 키 : 값 ) 형태로 넣어서 사용

코드 분리

코드 실행
728x90

 

 

 

 

 

setTimeout

setTimeout(함수, 시간) : 지정한 시간이 흐른 뒤 함수를 1회 실행 ( 1000 => 1초 )

<!DOCTYPE html>
<html lang="ko">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <script>
      const test = () => {
        // alert("test 호출");
      };
      /*
      window.onload = () => {
        document.write("처음 실행<br>");
        setTimeout(test, 2000);
        // test 함수를 2초 후에 실행
        document.write("2초 대기중....<br>");
      };
      */

      let e;
      const digClock = () => {
        let today = new Date();
        let time = today.getMonth() + 1 + "월";
        time += today.getDate() + "일";
        time += today.getHours() + "시";
        time += today.getMinutes() + "분";
        time += today.getSeconds() + "초";
        document.getElementById("clock").innerHTML = time;
        e = setTimeout(digClock, 1000);
      };
      const end = () => {
        clearTimeout(e);
      };
    </script>
    <div id="clock"></div>
    <button onclick="digClock()">시작</button>
    <button onclick="end()">종료</button>
  </body>
</html>
코드 실행 ( setTimeout 은 일회성 이지만 코드내에 자신 코드를 실행시키는 코드를 넣어서 무한으로 반복시킴 )

 

 

 

 

 

 

 

 

 

 

setInterval

setInterval(함수, 시간) : 지정한 시간이 흐를때마다 함수 실행을 반복 ( 1000 => 1초 )

clearInterval(Interval로 설정한 변수명) : 반복중인 Interval 을 종료

toLocaleString() : 기본 내장함수인 Date() 함수의 기본 메소드로 , (년.월.일 오후/오전 시간.분.초) 포멧으로 시간을 나타낸다

<!DOCTYPE html>
<html lang="ko">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <script>
      let myVar;
      const start = () => {
        myVar = setInterval(myTimer, 1000);
      };
      const myTimer = () => {
        let d = new Date();
        document.getElementById("time").innerHTML = d.toLocaleString();
      };
      const stop = () => {
        clearInterval(myVar);
      };
    </script>
    <p id="time"></p>
    <button onclick="start()">start</button>
    <button onclick="stop()">stop</button>
  </body>
</html>
코드 실행

 

 

 

 

 

 

 

 

 

 

innerHTML : 내부의 모든 HTML 코드를 변경 ( 기존에 자식으로 존재하던 요소를 삭제 후 대체 )

insertAdjacentHTML("afterbegin", msg) : 자식 코드의 가장 앞에 자식 HTML 코드를 추가

insertAdjacentHTML("beforeend", msg) : 자식 코드의 가장 뒤에 자식 HTML 코드를 추가

<!DOCTYPE html>
<html lang="ko">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <script>
      var cnt = 0;
      const inner = () => {
        cnt++;
        let msg = `내용 : ${cnt}<br>`;
        let txt = document.getElementById("txt");
        txt.innerHTML = msg;
        // innerHTML : 해당 내부의 모든 코드를 변경

        // txt.insertAdjacentHTML("afterbegin", msg);
        // afterbegin : 앞에 내용 추가

        // txt.insertAdjacentHTML("beforeend", msg);
        // beforeend : 뒤에 내용 추가
      };
    </script>
    <div id="txt">안녕하세요</div>
    <button onclick="inner()">클릭</button>
  </body>
</html>
코드 실행

 

 

 

 

 

 

 

 

 

 

createElement() : 요소를 생성하는 메소드, 아래 코드에선 HTML 의 table 요소를 생성

remove() : 해당하는 요소 자체를 삭제, 아래 코드에선 HTML 요소를 삭제하는데 사용

appendChild() : 자식 요소를 생성, 아래 코드에선 table 요소의 자식 요소로 tr, td 를 생성하는데 사용

removeChild(삭제할 요소의 index) : 자식 요소 중 해당 index 의 자식 요소를 삭제

<!DOCTYPE html>
<html lang="ko">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <style>
      table {
        border: 1px solid black;
      }
      table tr {
        border: 1px solid black;
      }
      table tr td {
        border: 1px solid black;
      }
    </style>
  </head>
  <body>
    <script>
      let img;
      function add() {
        img = document.createElement("img");
        // createElement : 태그를 만들어줌
        console.log(img);
        img.src = "image.png";
        img.setAttribute("width", "100");
        img.setAttribute("style", "height:100px; border:1px solid");

        document.getElementById("test").appendChild(img);
      }

      function addTB() {
        let data = [
          { id: "aaa", name: "홍길동" },
          { id: "bbb", name: "김개똥" },
        ];
        let table = document.createElement("table");
        data.forEach((value) => {
          var tr = document.createElement("tr");
          var td1 = document.createElement("td");
          td1.innerHTML = value.id;
          tr.appendChild(td1);

          var td2 = document.createElement("td");
          td2.innerHTML = value.name;
          tr.appendChild(td2);

          table.appendChild(tr);
        });
        document.getElementById("test").appendChild(table);
      }

      function remove() {
        let items = document.getElementById("test");
        // document.getElementById("test").remove();
        // items.remove();
        // remove는 test를 id로 가지고 있는 p태그 자체를 삭제

        // items.removeChild(items.childNodes[0]);
        // items 의 자식을 삭제 ( 첫번째 추가된 순으로 )

        items.removeChild(items.childNodes[items.childNodes.length - 1]);
        // items 의 자식을 삭제 ( 제일 늦게 추가된 순으로 )
      }
    </script>
    <p id="test"></p>
    <a href="#" onclick="addTB()">테이블 추가</a>
    <b onclick="add()">add 클릭</b>
    <b onclick="remove()">이미지 삭제</b>
  </body>
</html>
코드 실행
728x90

 

 

 

 

 

배열

 

join ( 배열 값의 사이사이에 값을 추가, join 을 사용하면 배열이 string 자료형으로 변환 )

<!DOCTYPE html>
<html lang="ko">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <script>
      const city = ["서울", "부산", "인천"];
      const printArr = () => {
        for (let i = 0; i < city.length; i++) {
          document.write(`배열 데이터[${i}] : ${city[i]}<br>`);
        }
      };
      printArr();
      city[3] = "대구";
      document.write("<hr>" + city + "<br>");
      document.write(typeof city + "<br>");
      const join01 = city.join();
      const join02 = city.join("-");
      document.write(`조인 결과 1 : ${join01}, type : ${typeof join01}<br>`);
      document.write(`조인 결과 2 : ${join02}, type : ${typeof join02}<br>`);
      // 조인은 배열 사이사이에 값을 어떤걸로 변경할지 선택
      // 아무것도 설정하지 않으면 , 으로 적용되며 join 을 사용하면
      // 배열이 아닌 string 자료형으로 변경된다
    </script>
  </body>
</html>

코드 실행

 

 

 

 

 

 

 

 

 

 

push, pop ( 배열의 마지막 값을 추가, 배열의 마지막 값을 제거 )

unshift, shift ( 배열의 맨 앞의 값을 추가, 배열의 맨 앞의 값을 제거 )

concat ( 배열의 마지막 값을 추가하지만 원본 배열은 건드리지 않고 복사본을 만든다 )

<!DOCTYPE html>
<html lang="ko">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <script>
      let kdata = ["서울", "부산"];
      document.write(`기본 배열 : ${kdata}<br>`);
      kdata.push(`인천`, `대구`);
      document.write(`push : ${kdata}<br>`);
      kdata.pop();
      document.write(`pop : ${kdata}<br>`);

      kdata.unshift(`111`, `222`);
      document.write(`unshift : ${kdata}<br>`);
      kdata.shift();
      document.write(`shift : ${kdata}<br>`);

      let data = kdata.concat(`안녕`, `하세요`);
      document.write(`concat : ${data}, type : ${typeof data}<br>`);
      document.write(`kdata : ${kdata}<br>`);
    </script>
  </body>
</html>

코드 실행

 

 

 

 

 

 

 

 

 

 

forEach ( 단순 배열 출력 및 연산에 사용, 리턴 값을 가질 수 없음 )

map ( 리턴 값을 가지므로 원하는대로 저장하여 사용할 수 있음 )

★ 둘 다 괄호 안에 함수를 가진다 ★

<!DOCTYPE html>
<html lang="ko">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <script>
      const data = [`1111`, `2222`, `3333`];
      for (let i = 0; i < data.length; i++) {
        document.write(data[i] + "<br>");
      }
      document.write("<hr>");

      //   function t(d) {
      //     console.log(d);
      //     document.write(d);
      //   }
      const t = (d) => console.log(d);
      data.forEach(t);
      // forEach 는 단순 출력, return 값을 가질 수 없다.
      // 고로 단순히 연산, 출력하는데만 사용할 수 있다
      // forEach() 괄호 안에는 함수가 들어가야하며
      // 각 값들을 매개변수로 받아 처리한다
      data.forEach((d) => {
        document.write(d);
      });







      //   function t02(d) {
      //     return `<b style="color:blue;">${d}</b>`;
      //   }
      const t02 = (d) => `<b style="color:blue;">${d}</b>`;
      const mapData = data.map(t02);
      // map 은 리턴값을 가진다
      document.write("<hr>" + mapData + "<hr>");
      const mapData02 = data.map((d) => `<b style="color:yellow;">${d}</b>`);
      document.write("<hr>" + mapData02 + "<hr>");
    </script>
  </body>
</html>

코드 실행

 

 

 

 

 

 

 

 

 

 

Dictionary ( 키와 값을 가진다, 함수도 값으로 가질 수 있다 )

<!DOCTYPE html>
<html lang="ko">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <script>
      let dic = { f0: 100, f1: 200 };
      document.write(`기본 값 : ${dic}<br>`);

      function test() {
        document.write("test실행<br>");
      }

      dic.f2 = "값 추가";
      dic["f3"] = "f33333";
      dic.func = test;

      document.write(dic + "<br>");
      document.write(dic["f1"] + "<br>");
      document.write(dic.f2 + "<br>");
      document.write(dic.f3 + "<br>");
      document.write(dic.func + "<br>");
      dic.func();
    </script>
  </body>
</html>

코드 실행

 

 

 

 

 

 

 

 

 

 

filter ( 데이터 중 해당하는 값만 걸러서 가져온다 )

★ () 에 함수를 가짐 ★

<!DOCTYPE html>
<html lang="ko">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <script>
      const data = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100];
      const filter01 = (value, index) => {
        console.log(`index : ${index}, value : ${value}`);
        return value >= 50;
      };
      const result01 = data.filter(filter01);
      document.write(result01 + "<br>");
      const result02 = data.filter((value) => value <= 50);
      document.write(result02 + "<br>");
    </script>
  </body>
</html>

코드 실행

 

 

 

 

 

 

 

 

 

 

배열의 값을 받아와서 회원의 정보 확인하기

<!DOCTYPE html>
<html lang="ko">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <script>
      let userDB = [
        { id: `aaa`, name: `홍길동`, age: 20 },
        { id: `bbb`, name: `김개똥`, age: 30 },
        { id: `ccc`, name: `고길동`, age: 40 },
      ];

      function init() {
        // alert("실행");
        const div = document.querySelector(".test");
        let msg = `아이디 : ${userDB[0].id}<br>
        이름 : ${userDB[0].name}<br>
        나이 : ${userDB[0].age}<br>`;
        div.innerHTML = msg;

        const div2 = document.querySelector(".test2");
        let msg2 = ``;
        for (const user of userDB) {
          // userDB 가 가지고 있는 값을 user 라는 변수로 하나씩
          // 가지고 옴
          msg2 += `아이디 : ${user.id}<br>
            이름 : ${user.name}<br>
            나이 : ${user.age}<br>`;
        }
        div2.innerHTML = msg2;
      }
    </script>
  </head>
  <body onload="init()">
    <!-- 웹이 구동되면 init() 함수를 실행시켜라... -->
    <!-- 자바스크립트의 window.load 와 같은 역할 -->
    <div class="test"></div>
    <hr />
    <div class="test2"></div>
  </body>
</html>

코드 실행

 

 

 

 

 

 

 

 

 

 

실습 예제

let userInfo = [ 
{ 'id' : 'aaa', 'name' : '홍길동', 'age' : 20 }, 
{ 'id' : 'bbb','name' : '김개똥', 'age' : 30 }, 
{ 'id' : 'ccc', 'name' : '고길동', 'age' : 40 } 
]

유저 데이터

실습 예제

 

예제 풀이

<!DOCTYPE html>
<html lang="ko">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <style>
      table {
        border: 1px solid black;
      }
      th {
        border: 1px solid black;
      }
      td {
        border: 1px solid black;
      }
    </style>
    <script>
      let userInfo = [
        { id: "aaa", name: "홍길동", age: 20 },
        { id: "bbb", name: "김개똥", age: 30 },
        { id: "ccc", name: "고길동", age: 40 },
      ];

      function lookInf(username) {
        const lookInf = document.querySelector(".allUserList");
        msg = "";
        for (const user of userInfo) {
          if (user.name == username) {
            msg += `<b>아이디</b> : ${user.id}<br>
                    <b>이름</b> : ${user.name}<br>
                    <b>나이</b> : ${user.age}`;
          }
        }
        lookInf.innerHTML = msg;
      }

      function lookAllUser() {
        const lookAllUser = document.querySelector(".allUserList");
        let msg = "";
        for (const user of userInfo) {
          msg += `<tr><td>${user.id}</td><td onclick="lookInf('${user.name}')">${user.name}</td><td>${user.age}</td></tr>`;
        }
        let allUserTable =
          "<table> <thead> <th>아이디</th> <th>이름</th> <th>나이</th> </thead>" +
          msg +
          "</table>";
        lookAllUser.innerHTML = allUserTable;
      }

      function lookUser() {
        const lookUser = document.querySelector(".allUserList");
        const inputId = document.getElementById("inputId").value;
        let msg = "";
        for (const user of userInfo) {
          if (user.name == inputId) {
            msg += `<tr> <td>${user.id}</td> <td onclick="lookInf('${user.name}')">${user.name}</td> <td>${user.age}</td> </tr>`;
          }
        }
        let allUserTable =
          "<table> <thead> <th>아이디</th> <th>이름</th> <th>나이</th> </thead>" +
          msg +
          "</table>";
        lookUser.innerHTML = allUserTable;
      }

      function deleteUser() {
        const deleteUser = document.querySelector(".allUserList");
        const deleteId = document.getElementById("inputDeleteId").value;

        const deleteFilter = (value) => {
          return value.name != deleteId;
        };
        const deleteResult = userInfo.filter(deleteFilter);

        let msg = "";
        for (const user of deleteResult) {
          msg += `<tr> <td>${user.id}</td> <td onclick="lookInf('${user.name}')">${user.name}</td> <td>${user.age}</td> </tr>`;
        }
        let deleteUserTable =
          "<table> <thead> <th>아이디</th> <th>이름</th> <th>나이</th> </thead>" +
          msg +
          "</table>";

        deleteUser.innerHTML = deleteUserTable;
      }
    </script>
  </head>
  <body>
    <div class="allUserList">목록을 보여 줍니다</div>
    <hr />
    <input type="button" value="모든 회원 보기" onclick="lookAllUser()" />
    <hr />
    <input type="text" placeholder="input id" id="inputId" />
    <br />
    <input type="button" value="특정 회원 조회" onclick="lookUser()" />
    <hr />
    <input type="text" placeholder="input id" id="inputDeleteId" />
    <br />
    <input type="button" value="특정 회원 삭제" onclick="deleteUser()" />
  </body>
</html>
예제 풀이
728x90

 

 

 

 

 

Event

이벤트

모든 행위를 이벤트라 부른다

 

 

 

 

 

마우스 이벤트

마우스 이벤트

 

<!DOCTYPE html>
<html lang="ko">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <script>
      const clickEvent = () => {
        alert("클릭");
      };
    </script>

    <input type="button" onclick="clickEvent()" value="클릭" />
    <input type="button" ondblclick="clickEvent()" value="클릭" />
    <input type="button" onmouseover="clickEvent()" value="클릭" />
  </body>
</html>
코드 실행

 

 

 

 

 

 

 

키보드 이벤트

키보드 이벤트

 

 

 

 

 

 

 

 

 

 

아이디와 연동하여 이벤트 발생 시 함수 호출하기

<!DOCTYPE html>
<html lang="ko">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <style>
      #h3 {
        color: red;
      }
    </style>
  </head>
  <body>
    <script>
      const clickEvent = () => {
        // alert("클릭");
        const name = document.getElementById("name");
        console.log(name);
        // name.value = "안녕하세요";
        // name.style = "background : blue; border : 10px solid black";

        const name1 = document.querySelector("#name2");
        console.log(name1);
        name1.value = name.value;
        name.value = "";
      };

      // window.onload => 웹이 호출될때 자동으로 실행되는 함수
      window.onload = () => {
        // alert("onload");
        document.getElementsByClassName("btn");
        const btn = document.querySelector(".btn");
        console.log(btn);
        btn.addEventListener("dblclick", innerTest);
        // 버튼이 더블클릭되면 innerTest 함수를 실행시켜라
      };

      const innerTest = () => {
        // 아이디 값이 text 인 것을 불러옴
        const txt = document.getElementById("text");
        let msg = "<h3 id = 'h3'>내용 바꾸기</h3>";
        txt.innerHTML = msg;
        // innerHTML 은 html 코드까지 적용된다
        txt.innerText = msg;
        // innerText 는 html 코드를 모두 text 로 인식하여
        // 코드를 모두 텍스트로 표현한다
      };
    </script>

    <input type="text" id="name" placeholder="input name" /><br />
    <input type="text" id="name2" placeholder="input name" /><br />
    <input type="button" onclick="clickEvent()" value="클릭" />
    <input type="button" class="btn" value="클릭" />
    <br />
    <label id="text">텍스트 값</label>
  </body>
</html>
코드 실행

 

 

 

 

 

<!DOCTYPE html>
<html lang="ko">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <script>
      const myMousedown = () => {
        document.getElementById("span").innerHTML = "마우스 DOWN";
      };

      const myMouseup = () => {
        document.getElementById("span").innerHTML = "마우스 UP";
      };

      let cnt = 0;
      const myMousemove = () => {
        cnt++;
        document.getElementById("count1").innerHTML = cnt;
      };

      const myMouseover = () => {
        document.getElementById("count2").innerHTML = cnt;
      };

      const myMouseout = () => {
        document.getElementById("count2").innerHTML = "마우스 나감";
      };
    </script>
  </head>
  <body>
    <div
      style="cursor: pointer"
      onmousedown="myMousedown()"
      onmouseup="myMouseup()"
    >
      <span id="span"> 이벤트 알아보기 </span>
    </div>

    <div
      onmousemove="myMousemove()"
      style="background: gray; width: 100px; height: 100px"
    >
      <span id="count1">0</span>
    </div>

    <div
      onmouseover="myMouseover()"
      onmouseout="myMouseout()"
      style="background: gray; width: 100px; height: 100px"
    >
      <span id="count2">0</span>
    </div>
  </body>
</html>
코드 실행

 

 

 

 

 

<!DOCTYPE html>
<html lang="ko">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <style>
      img {
        width: 100px;
        height: 200px;
      }
    </style>

    <script>
      // window.onload 에서 window. 은 생략 가능
      onload = () => {
        // alert("execute");
        let img = document.getElementById("myImg");
        img.addEventListener("mouseover", changeFunc01);
        // 마우스가 들어오면 changeFunc01 함수를 호출
        img.addEventListener("mouseout", () => {
          let myImg = document.getElementById("myImg");
          let myImg02 = document.getElementById("myImg02");
          myImg.src = "download.jpg";
          myImg02.src = "download.jpg";
        });
        // 마우스가 들어오면 바로 뒤에 선언된 함수를 호출
      };
      changeFunc01 = () => {
        let myImg = document.getElementById("myImg");
        let myImg02 = document.getElementById("myImg02");
        myImg.src = "image.png";
        myImg02.src = "image.png";
      };
      changeFunc02 = () => {
        let myImg = document.getElementById("myImg");
        let myImg02 = document.getElementById("myImg02");
        myImg.src = "download.jpg";
        myImg02.src = "download.jpg";
      };
    </script>
  </head>
  <body>
    <img id="myImg" src="download.jpg" />
    <img
      id="myImg02"
      src="download.jpg"
      onmousedown="changeFunc01()"
      onmouseup="changeFunc02()"
    /><br />
  </body>
</html>

download.jpg : 이상해씨

image.png : 파이리

좌측 이미지 : 마우스가 올라가고 나감에 따라 그림이 변경, 우측 이미지 : 마우스가 그림에서 클릭됨에 따라 그림이 변경

 

 

 

 

 

코드 간단히 변경

<!DOCTYPE html>
<html lang="ko">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <style>
      img {
        width: 100px;
        height: 200px;
      }
    </style>

    <script>
      // window.onload 에서 window. 은 생략 가능
      onload = () => {
        // alert("execute");
        let img = document.getElementById("myImg");
        img.addEventListener("mouseover", changeFunc01);
        // 마우스가 들어오면 changeFunc01 함수를 호출
        img.addEventListener("mouseout", changeFunc01);
        // 마우스가 들어오면 바로 뒤에 선언된 함수를 호출
      };
      let num = 0;
      changeFunc01 = () => {
        const arr = ["image.png", "download.jpg"];
        let myImg = document.getElementById("myImg");
        let myImg02 = document.getElementById("myImg02");
        myImg.src = arr[num];
        myImg02.src = arr[num];
        num = (num == 0) ? 1 : 0;

        // if (num == 0) {
        //   myImg.src = arr[num];
        //   myImg02.src = arr[num];
        //   num = 1;
        // } else {
        //   myImg.src = arr[num];
        //   myImg02.src = arr[num];
        //   num = 0;
        // }

        //myImg.src = "image.png";
        //myImg02.src = "image.png";
      };
    </script>
  </head>
  <body>
    <img id="myImg" src="download.jpg" />
    <img
      id="myImg02"
      src="download.jpg"
      onmousedown="changeFunc01()"
      onmouseup="changeFunc02()"
    /><br />
  </body>
</html>
코드 실행

 

 

 

 

 

 

 

 

 

 

실습 예제

실습 예제

 

예제 풀이

<!DOCTYPE html>
<html lang="ko">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <style>
      div {
        background: lightgray;
        height: 400px;
        width: 400px;
        text-align: center;
      }
      div > img {
        height: 300px;
        margin-top: 5%;
      }
      div > div {
        width: auto;
        height: 50px;
        display: flex;
        background: lightpink;
      }
      div > div > button {
        height: 25px;
        margin: auto;
      }
    </style>
    <script>
      imageNum = 1;
      onload = () => {
        let nextImgbtn = document.getElementById("nextImgbtn");
        let beforeImgbtn = document.getElementById("beforeImgbtn");
        nextImgbtn.addEventListener("click", nextImgFunc);
        beforeImgbtn.addEventListener("click", beforeImgFunc);
      };
      nextImgFunc = () => {
        let img = document.getElementById("img");
        imageNum == 8 ? (imageNum = 1) : imageNum++;
        img.src = `./사진/최근상품0${imageNum}.jpg`;
      };
      beforeImgFunc = () => {
        let img = document.getElementById("img");
        imageNum == 1 ? (imageNum = 8) : imageNum--;
        img.src = `./사진/최근상품0${imageNum}.jpg`;
      };
    </script>
  </head>
  <body>
    <div>
      <img src="./사진/최근상품01.jpg" id="img" />
      <div>
        <button id="beforeImgbtn">이전 사진</button>
        <button id="nextImgbtn">다음 사진</button>
      </div>
    </div>
  </body>
</html>
코드 실행

 

 

 

 

 

 

 

 

 

 

실습 예제2

실습 예제2

 

예제 풀이2

<!DOCTYPE html>
<html lang="ko">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <style>
      * {
        margin: 0;
      }
      img {
        width: 100px;
        height: 100px;
      }
      .flex {
        display: flex;
      }
      .div {
        border: 1px solid gray;
        width: 100px;
        height: 100px;
        position: relative; /* 자식 span요소를 absolute를 사용하기 위해 설정*/
      }
      span {
        /*absolute가 적용되면 inline태그의 사이즈도 조정 가능해 진다*/
        position: absolute;
        background: orange;
        top: 25px;
        left: 25px;
        width: 50px;
        height: 50px;
        /*line-height와 height의 크기를 같게 하면 글씨가 가운데 정렬된다*/
        text-align: center;
        line-height: 50px;
      }
    </style>

    <script>
      const images = [
        "./사진/최근상품01.jpg",
        "./사진/최근상품02.jpg",
        "./사진/최근상품03.jpg",
        "./사진/최근상품04.jpg",
        "./사진/최근상품05.jpg",
        "./사진/최근상품06.jpg",
        "./사진/최근상품07.jpg",
        "./사진/최근상품08.jpg",
      ];

      window.onload = function init() {
        console.log("init");
        let msg = "<div class='flex'>";
        for (let i = 0; i < images.length; i++) {
          msg += `<div class="div" id="${i}" onMousemove="imgOver(${i})" onMouseout="imgOut(${i})">`;
          msg += `<img src="${images[i]}" >`;
          msg += "</div>";
          if (i + 1 == Number(images.length / 2))
            msg += "</div><div class='flex'>";
        }
        const wrap = document.getElementById("wrap");
        wrap.innerHTML = msg;
      };
      const imgOver = (index) => {
        const div = document.getElementById(index);
        div.innerHTML = `<span onMousemove="imgOver(${index})">선택</span>`;
      };
      const imgOut = (index) => {
        const div = document.getElementById(index);
        div.innerHTML = `<img src="${images[index]}">`;
      };
    </script>
  </head>
  <body>
    <div id="wrap"></div>
  </body>
</html>

- 처음 시도(오류) -

테이블 안에 td 태그내부에 img 태그로 이미지를 불러옴 > 이후 img 태그에 각각 id 를 부여하여 innerHTML 을 사용하여 이미지를 display:none 으로 표현하고자 하였으나 실패 > innerHTML 은 해당 태그 안의 HTML 코드 자체를 변경하는 기능이므로 변경하고자 하면 img 태그에 id 를 부여해서 변경하는 것이 아닌 img 태그를 가지고 있는 부모 태그인 td 에 id 를 부여하여 변경하여야 했음.... > 태그 내에 있는 코드 자체를 변경하는 것이 innerHTML 이므로 만약 img 를 변경하고 싶다면 혹은 제거하고 싶다면 img 가 속해있는 부모 태그에서 사용해야 한다

코드 실행
728x90

 

 

 

 

 

함수 ( function )

- function 으로 정의한다.

funtion 함수명(){실행할 코드}

<!DOCTYPE html>
<html lang="ko">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <script>
      console.log("프로그램 시작!!!");
      function test() {
        console.log("test 함수 시작!!");
      }
      console.log("함수 지나옴");
      test();
      console.log("프로그램 종료!!!");
    </script>
  </body>
</html>

함수 부분은 호출이 이루어지기 전까지 실행되지 않음 ( 선언된다고 실행되지 않음, 반환타입을 java 처럼 따로 지정하진 않는다 )

( 자바의 변수와 동일하게 자바스크립트의 변수는 지역변수, 전역변수 등 어디서 선언되느냐에 따라 변수의 소멸 시점이 존재한다 )

 

 

 

 

 

 

 

 

 

 

함수에 매개변수를 넘겨주기

<!DOCTYPE html>
<html lang="ko">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <script>
      /*
      sumFunc();
      function sumFunc() {
        const n1 = prompt(`수 입력`);
        const n2 = prompt(`수 입력`);
        const sum = Number(n1) + Number(n2);
        document.write(`${n1} + ${n2} = ${sum}<br>`);
      }
      */

      /*
      const n1 = prompt(`수 입력`);
      const n2 = prompt(`수 입력`);
      sumFunc(n1, n2);
      function sumFunc(n1, n2) {
        const sum = Number(n1) + Number(n2);
        document.write(`${n1} + ${n2} = ${sum}<br>`);
      }
      */

      const n1 = prompt(`수 입력`);
      const n2 = prompt(`수 입력`);
      const sum = op(n1, n2);
      sumFunc(n1, n2, sum);
      // 계산부분
      function op(n1, n2) {
        const sum = Number(n1) + Number(n2);
        return sum;
      }
      // 출력부분
      function sumFunc(n1, n2, sum) {
        document.write(`${n1} + ${n2} = ${sum}<br>`);
      }
    </script>
  </body>
</html>
코드 실행

 

 

 

 

 

 

 

 

 

 

여러개의 값을 리턴하고자 할때

- 배열을 사용

<!DOCTYPE html>
<html lang="ko">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <script>
      // return 값을 하나만 전달 가능
      function testFunc01() {
        let num = 95;
        let txt = "안녕하세요";
        return num, txt;
      }
      const result = testFunc01();
      document.write(result + "<hr>");

      // 배열로 담아서 return 값을 여러개 전달
      function testFunc02() {
        let num = 95;
        let txt = "안녕하세요";
        const arr = [num, txt];
        return arr;
      }
      const result2 = testFunc02();
      document.write(result2 + "<hr>");
      document.write(result2[0] + "<hr>");
      document.write(result2[1] + "<hr>");

      // Object 타입으로 return 값을 여러개 전달
      function testFunc03() {
        let num = 95;
        let txt = "안녕하세요";
        const arr = { num: num, txt: txt };
        return arr;
      }
      const result3 = testFunc03();
      // 콘솔에서 result3 이 가지고 있는 키와
      // 키에 담긴 값을 확인한 뒤 사용
      console.log(result3);
      document.write(result3 + "<hr>");
      document.write(result3["num"] + "<hr>");
      document.write(result3.txt + "<hr>");
    </script>
  </body>
</html>

코드 실행

 

 

 

 

 

 

 

 

 

 

매개변수의 갯수가 다르거나 가변적일 경우 함수에서 처리하는 방법

<!DOCTYPE html>
<html lang="ko">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <script>
      function test01(x, y) {
        console.log("첫번째 함수 실행!!!");
      }
      function test01(x) {
        return x;
      }
      document.write("함수 호출 인자 없음 : " + test01() + "<br>");
      document.write("함수 호출 인자 1 : " + test01(10) + "<br>");
      document.write("함수 호출 인자 2 : " + test01(10, 20) + "<br>");
      // 오버로딩 불가능....!!! 무조건 나중에 선언된 함수로 적용됨

      function test02(x, y, z) {
        document.write(`${x}, ${y}, ${z}<br>`);
        if (z == undefined) {
          // 매개변수가 갯수가 부족할 경우의 로직 생성
          sum = x + y;
        } else {
          sum = x + y + z;
        }
        return sum;
      }
      let r1 = test02(10, 20);
      let r2 = test02(10, 20, 30);
      document.write(`매개변수 2개 : ${r1}<br>`);
      document.write(`매개변수 3개 : ${r2}<br>`);

      // arguments 를 사용하여 여러개의 가변적인 매개변수 받기
      function test03() {
        console.log(arguments.length);
        let i,
          sum = 0;
        for (i = 0; i < arguments.length; i++) {
          sum = sum + arguments[i];
          document.write(arguments[i]);
        }
        return sum;
      }
      let r3 = test03(10, 20);
      let r4 = test03(10, 20, 30);
      document.write(`매개변수 2개 : ${r3}<br>`);
      document.write(`매개변수 3개 : ${r4}<br>`);
    </script>
  </body>
</html>

 

 

 

 

 

 

 

 

 

 

함수 표현식

함수 표현식 ( 익명함수, 즉시 실행 함수 )

익명함수 - 한번 사용되고 사라짐 ( 메모리공간에서 삭제 )

일반 함수 - 선언되면 메모리 공간을 미리 잡아먹고 사용할때 꺼내서 쓴다

 

 

 

 

 

즉시 실행 함수

<!DOCTYPE html>
<html lang="ko">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <script>
      (function test() {
        alert("즉시 실행 함수!!!!");
      })();

      let result = (function test1() {
        return "서버로부터 데이터를 받아와 화면에 보여줌";
      })();
      document.write(result + "<br>");

      // 초기화 해주는 함수
      let name = "홍길동";
      let result02 = (function test02(n) {
        let db = n + "님의 정보 입니다";
        return db;
      })(name);
      document.write(result02 + "<br>");
    </script>
  </body>
</html>
즉시 실행 함수 코드 실행

 

 

 

 

 

★ 익명 함수 ★

<!DOCTYPE html>
<html lang="ko">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <script>
      function test(x, y) {
        return x + y;
      }
      document.write(test(1, 2) + "<br>");

      // 함수를 변수로 설정하고 1회만 사용하고 버리는 익명함수
      let sumFunc = function (x, y) {
        return x + y;
      };
      document.write(sumFunc(10, 20) + "<br>");

      // 함수를 변수로 설정하고 1회만 사용하고 버리는 익명함수
      // 더 간단한 표현식
      let sumFunc1 = (x, y) => x + y;
      document.write(sumFunc1(100, 200) + "<br>");

      // 여러 줄을 표현해야 할 땐 중괄호로 묶어서 표현해야 한다
      // 중괄호로 여러 줄을 표현하는 경우 무조건 return 이 들어가야 한다
      // 어떤 값이 반환 값인지 명시해줘야 함!!!
      let sumFunc2 = (x, y) => {
        let num = 100;
        return x + y + num;
      };
      document.write(sumFunc2(1000, 2000) + "<br>");

      // 중괄호로 묶었을때 리턴값이 없으면 undefined 를 반환
      const result01 = () => {
        10 + 20;
      };
      const result02 = () => 10 + 20;
      const result03 = () => (10 + 20);

      document.write("<hr>");
      document.write(result01() + "<br>");
      document.write(result02() + "<br>");
      document.write(result03() + "<br>");
    </script>
  </body>
</html>

익명 함수 코드 실행

 

 

 

 

 

 

 

 

 

 

실습 예제

실습 예제

 

예제 풀이

<!DOCTYPE html>
<html lang="ko">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <script>
      // 입력 함수
      let inputNum1 = (x) => Number(prompt(x));

      // 출력 함수
      let print = (x) => document.write(x);

      // 두 수를 입력받아 큰 수를 출력하는 함수
      let moreBig = (x, y) => {
        if (x > y) {
          return x;
        } else {
          return y;
        }
      };
      print(moreBig(inputNum1("첫번째 수 입력"), inputNum1("두번째 수 입력")));

      document.write("<hr>");

      // 입력 받은 값이 짝수인지 홀수인지 판별하는 함수
      let evenNum = (x) => {
        if (x % 2 != 0) {
          return "홀수";
        } else {
          return "짝수";
        }
      };
      print(evenNum(inputNum1("홀, 짝 판별할 수 입력")));

      document.write("<hr>");

      // 입력 받은 값이 3의 배수인지 판별하는 함수
      let multipleThree = (x) => {
        if (x % 3 != 0) {
          return `${x}는 3의 배수가 아닙니다`;
        } else {
          return `${x}는 3의 배수입니다`;
        }
      };
      print(multipleThree(inputNum1("3의 배수인지 판별할 수 입력")));

      document.write("<hr>");

      // 수를 입력 받아 소수인지 판별하는 함수
      let decimal = (x) => {
        var arr = [];
        for (var i = 1; i <= x; i++) {
          if (x % i == 0) {
            arr.push(i);
          }
        }
        if (arr.length == 2) {
          return `${x}는 소수 입니다.`;
        } else {
          return `${x}는 소수가 아닙니다.`;
        }
      };
      print(decimal(inputNum1("소수인지 판별할 수를 입력하세요")));

      document.write("<hr>");

      // 절댓값을 구하는 함수를 정의하시오
      let absolute = (x) => {
        if (x >= 0) {
          return x;
        } else {
          return x - x * 2;
        }
      };
      print(absolute(inputNum1("절댓값을 구할 수를 입력하세요")));
    </script>
  </body>
</html>
코드 실행
728x90

 

 

 

 

 

JavaScript

 

 

 

 

 

if 문 사용 예시

<!DOCTYPE html>
<html lang="ko">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <script>
      const num = 10;
      let msg = "";
      if (num > 100) {
        msg = "100보다 크다";
      } else {
        msg = "100보다 작다";
      }
      document.write(msg);
      document.write("<hr>");

      if (num % 2 == 0) {
        msg = "num은 짝수이며<br>";
        msg += "2의 배수입니다";
      } else {
        msg = "num은 홀수이며<br>";
        msg += "2의 배수가 아닙니다";
      }
      document.write(msg);
      document.write("<hr>");

      const saveId = "aaa",
        savePwd = "aaa";
      const inputId = "aaa",
        inputPwd = "aaa";
      if (saveId === inputId) {
        if (savePwd === inputPwd) {
          msg = `${saveId}님 로그인 완료`;
        } else {
          msg = "비밀번호가 틀렸습니다";
        }
      } else {
        msg = "존재하지 않는 id 입니다";
      }
      alert(msg);
    </script>
  </body>
</html>
코드 실행

( else if 도 자바 문법과 동일하게 사용할 수 있다 )

 

 

 

 

 

 

 

 

 

 

switch-case 문

<!DOCTYPE html>
<html lang="ko">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <script>
      let msg = "";
      let num = 3;
      switch (num) {
        case 1:
          msg = "1과 같음";
          break;
        case 2:
          msg = "2와 같음";
          break;
        default:
          msg = "그 외의 값 입력";
      }
      document.write(msg + "<hr>");

      num = "안녕";
      switch (num) {
        case "안녕":
          msg = "하세요";
          break;
        case "그래":
          msg = "반갑다";
          break;
      }
      document.write(msg + "<hr>");
    </script>
  </body>
</html>

코드 실행

 

 

 

 

 

 

 

 

 

 

for 문

<!DOCTYPE html>
<html lang="ko">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <script>
      repeat = 5;
      msg = "";
      for (var i = 1; i < repeat; i++) {
        msg += `<h${i}>${i}. 번째 반복<h${i}>`;
      }
      document.write(msg + "<hr>");

      let sum = 0;
      num = 10;
      for (var i = 1; i <= num; i++) {
        sum += i;
      }
      document.write(sum + "<hr>");

      let evenSum = 0,
        oddSum = 0;
      sum = 0;
      num = 10;
      for (var i = 1; i <= num; i++) {
        sum += i;
        if (i % 2 == 0) {
          evenSum += i;
        } else {
          oddSum += i;
        }
      }
      document.write(`1부터 10까지의 총 합 : ${sum}<hr>`);
      document.write(`1부터 10까지의 짝 합 : ${evenSum}<hr>`);
      document.write(`1부터 10까지의 홀 합 : ${oddSum}<hr>`);
    </script>
  </body>
</html>

코드 실행

 

 

 

 

 

 

 

 

 

 

while 문

<!DOCTYPE html>
<html lang="ko">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <script>
      let i = 1,
        sum = 0;
      while (i <= 10) {
        sum += i;
        i++;
      }
      document.write(sum + "<hr>");

      i = 1;
      while (i <= 5) {
        if (i == 3) {
          console.log("333333333");
          break;
        }
        console.log(i);
        i++;
      }

      i = 1;
      let msg = "";
      let bool = true;
      while (bool) {
        if (i == 3) {
          bool = false;
        }
        msg += i + ", ";
        i++;
      }
      document.write(msg);
    </script>
  </body>
</html>

코드 실행

 

 

 

 

 

 

 

 

 

 

실습 예제1

실습 예제1

<!DOCTYPE html>
<html lang="ko">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <script>
      // 실습 예제 1-1
      let coffeeNum = prompt("구매할 커피 갯수 입력");
      let coffeSum = 0;
      for (var i = 1; i <= coffeeNum; i++) {
        if (i <= 10) {
          coffeSum += 2000;
        } else {
          coffeSum += 1500;
        }
      }
      document.write(`총 커피 가격 : ${coffeSum}<br>`);

      // 실습 예제 1-2
      let usbNum = prompt("구매할 usb 갯수 입력");
      let usbSum = 0;
      for (var i = 1; i <= usbNum; i++) {
        if (usbNum < 100) {
          usbSum += 5000;
        } else {
          usbSum += 5000 * 0.88;
        }
      }
      document.write(`총 usb 가격 : ${usbSum}`);
    </script>
  </body>
</html>

 

예제 풀이1

예제 풀이1

 

 

 

 

 

 

 

 

 

 

실습 예제2

실습 예제2

 

예제 풀이2

<!DOCTYPE html>
<html lang="ko">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <script>
      num = prompt("수 입력");
      msg = "";
      for (var i = 1; i <= 9; i++) {
        msg += `${num} * ${i} = ${num * i}<br>`;
      }
      document.write(msg);
    </script>
  </body>
</html>

예제 풀이2

 

 

 

 

 

 

 

 

 

 

실습 예제3

실습 예제3

 

예제 풀이3

<!DOCTYPE html>
<html lang="ko">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <script>
      msg = "";
      for (var i = 1; i <= 25; i++) {
        msg += i;
        if (i % 5 == 0) {
          msg += "<br>";
        } else {
          msg += " , ";
        }
      }
      document.write(msg);
    </script>
  </body>
</html>

예제 풀이3

 

 

 

 

 

 

 

 

 

 

실습 예제4

실습 예제4

 

예제 풀이4

<!DOCTYPE html>
<html lang="kor">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <script>
      let msg1 = "";
      for (var i = 1; i <= 5; i++) {
        for (var j = 1; j <= 5; j++) {
          msg1 += `${i * j} `;
        }
        msg1 += "<br>";
      }
      document.write(msg1);

      document.write(`<hr>`);

      let msg2 = "";
      for (var i = 1; i <= 21; i += 5) {
        for (var j = 0; j <= 4; j++) {
          msg2 += `${i + j} `;
        }
        msg2 += "<br>";
      }
      document.write(msg2);
    </script>
  </body>
</html>

예제 풀이4

 

 

 

 

 

 

 

 

 

 

실습 예제5

실습 예제5

 

예제 풀이5

<!DOCTYPE html>
<html lang="ko">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <style>
      table {
        border: 1px solid black;
      }
      table tr td {
        border: 1px solid black;
      }
    </style>
  </head>
  <body>
    <script>
      let num = prompt("아파트 층 수 입력");

      msg = "<table>";
      for (var i = num; i >= 1; i--) {
        msg += "<tr>";
        for (var j = 1; j <= 4; j++) {
          msg += `<td>${i + "0" + j + "호"}</td>`;
        }
        msg += "</tr>";
      }
      msg += "</table>";
      document.write(msg);
    </script>
  </body>
</html>
예제 풀이5

 

 

 

 

 

 

 

 

 

 

실습 예제6

실습 예제6

 

예제 풀이6

<!DOCTYPE html>
<html lang="ko">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <script>
      let num;
      let sum = 0;
      while (true) {
        num = prompt("수 입력(10~20사이의 수)");
        if (num < 10 || num > 20) {
          alert("범위를 벗어났습니다. 다시 시도하세요.");
          console.log("범위를 벗어났습니다. 다시 시도하세요.");
          continue;
        } else {
          for (var i = 1; i <= num; i++) {
            sum += i;
          }
          break;
        }
      }
      document.write(`입력받은 수까지의 합 : ${sum}`);
      console.log(`입력받은 수까지의 합 : ${sum}`);
    </script>
  </body>
</html>
콘솔창과 alert 창 둘 다 출력
728x90

+ Recent posts