Notice
Recent Posts
Recent Comments
Link
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

히바리 쿄야 와 함께 하는 Developer Cafe

[1일차] DO IT 자바스크립트 /P14 ~ 124/ 04. 제어문 본문

JAVASCRIPT

[1일차] DO IT 자바스크립트 /P14 ~ 124/ 04. 제어문

TWICE&GFRIEND 2020. 12. 28. 18:53

웹 브라우저 화면에 출력할때 - document.write()  

var name = prompt("이름: ");

document.write(name + "님, 어서오시오!");

크롬 브라우저 화면에 표시하는 역할을 함

 

콘솔창에 출력하기 - console.log() 

 

 

자바스크립트는 대소문자를 구분한다 , 예약어는 식별자로 사용할 수 없다.

 

사용자에게 간단한 텍스트 값을 입력 받을 때에는 prompt 라는 함수를 사용한다.

 

사용자에게 알림 창을 표시할 때에는 alert 함수를 사용한다.

 

변수 지정 할때 숫자가 맨앞에 나와서는 안된다.

 

예제

 

<!DOCTYPE html>

<html lang="ko">

<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <meta http-equiv="X-UA-Compatible" content="ie=edge">

    <title>나이 계산하기</title>

    <link rel="stylesheet" href="css/age.css">

</head>

<body>  

    <button class="btn" onclick="calc()">나이 계산하기</button>

    <div id="result" class="show">(결과 값 표시)</div>

    <script>

        function calc() {

            var currentYear = 2020;  //올해연도 

            var birthYear = prompt("태어난 연도를 입력하세요.","YYYY");; //태어난연도  

            var age;

            age = currentYear - birthYear + 1// 올해 연도 에서 태어난 연도를 뺀 다음 1을 더해야 나이 값이 나온다.

            document.querySelector("#result").innerHTML = "당신의 나이는 " + age + "세입니다.";

        }

    </script>

</body>

</html>

 

 

 

<!DOCTYPE html>

<html lang="ko">

<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <meta http-equiv="X-UA-Compatible" content="ie=edge">

    <title>할인 가격 구하기</title>

    <link rel="stylesheet" href="css/bargain.css">

</head>

<body>  

    <div id="contents">

        <img src="images/sale.png">

        <ul>

            <li>

                    <label for="oPrice">원래 가격</label> 

                    <input type="text" id="oPrice">

            </li>

            <li>

                <label for="rate">할인율</label>

                <input type="text" id="rate">%

            </li>

            <li>

                    <button onclick="showPrice()">할인 가격 계산하기</button>

            </li>

        </ul>

        <div id="showResult"></div> 

    </div>

    <script>

        function showPrice(){

            var originPrice = 10000;   //상품가격

            var rate = 25//할인율

            document.querySelector("#showResult").innerHTML = "상품의 원래 가격은" + originPrice + "원이고, 할인율 은" + rate + "%입니다.";

        }

        

    </script>   

</body>

</html>

 

 

예제 수정

 

<!DOCTYPE html>

<html lang="ko">

<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <meta http-equiv="X-UA-Compatible" content="ie=edge">

    <title>할인 가격 구하기</title>

    <link rel="stylesheet" href="css/bargain.css">

</head>

<body>  

    <div id="contents">

        <img src="images/sale.png">

        <ul>

            <li>

                    <label for="oPrice">원래 가격</label> 

                    <input type="text" id="oPrice">

            </li>

            <li>

                <label for="rate">할인율</label>

                <input type="text" id="rate">%

            </li>

            <li>

                    <button onclick="showPrice()">할인 가격 계산하기</button>

            </li>

        </ul>

        <div id="showResult"></div>

    </div>

    <script>

        function showPrice(){

            //var originPrice = 10000;   //상품가격

            //var rate = 25; //할인율

            var originPrice = document.querySelector("#oPrice").value;

            var rate = document.querySelector("#rate").value;

            var savedPrice = originPrice * (rate / 100);  // 절약한 가격  -> 상품 가격 * (할인율 / 100)

            var resultPrice = originPrice - savedPrice;   //  지불한 가격 -> 상품가격 - 절약한 가격 

            document.querySelector("#showResult").innerHTML = "상품의 원래 가격은" + originPrice + "원이고, 할인율 은" + rate + "%입니다." + savedPrice + "원을 절약한 " + resultPrice + "원에 구입할 수 있습니다.";

        }

        

    </script>   

</script>

</body>

</html>

 

 

 

 

Document.querySelector()는 제공한 선택자 또는 선택자 뭉치와 일치하는 문서 내 첫 번째 Element를 반환합니다. 일치하는 요소가 없으면 null을 반환합니다.

참고: 탐색은 깊이우선depth-first 전위pre-order순회로, 문서의 첫 번째 요소부터 시작해 자식 노드의 수를 기준으로 순회합니다.

document.querySelector(selectors);

 

<div id="foo\bar"></div>

<div id="foo:bar"></div>

 

<script>

  console.log('#foo\bar')             // "#fooar" ('\b'는 백스페이스 컨트롤 문자)

  document.querySelector('#foo\bar')  // 일치하는 요소 없음

 

  console.log('#foo\\bar')            // "#foo\bar"

  console.log('#foo\\\\bar')          // "#foo\\bar"

  document.querySelector('#foo\\bar'// 첫 번째 <div>

 

  document.querySelector('#foo:bar')   // 일치하는 요소 없음

  ocument.querySelector('#foo\\:bar'// 두 번째 <div>

 

 

자료형

 

기본형 

number( 숫자 ) : 따옴표 없이 표기한 숫자를 나타냄

string(문자열) : 작은 따옴표 (') 또는 큰 따옴표 (") 로 묶어 나타냄

boolean(문자열) : true or false  

undefined : 자료형을 지정하지 않았을때 변수를 선언하고 값을 지정하지 않으면 표시된다.

null : 값이 유효하지 않을때

 

복합형

array(배열) : 하나의 변수에 여러값을 저장 -> 배열 시작은 인덱스 0 부터 시작함

object(객체) : 함수와 속성이 함께 포함된 유형

 

 

자료형을 확인할때 typeof 연산자 이용

 

 

if ~ else 이용 3의 배수를 출력하는 예제

 

<!DOCTYPE html>

<html lang="ko">

<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <meta http-equiv="X-UA-Compatible" content="ie=edge">

    <title>3의 배수인지 확인</title>

    <link rel="stylesheet" href="css/multi3.css">

</head>

<body>

    <div id="result"></div>

    <script>

        var userNumber = prompt("숫자를 입력하세요.");

        var userSelect = document.querySelector("#result");



        if(userNumber != null){  //취소 버튼을 클릭하지 않았으면 

            if(userNumber % 3 == 0){

                userSelect.innerHTML = userNumber + "은 3의 배수 입니다.";

            }else{

                userSelect.innerHTML = userNumber + "은 3의 배수가 아닙니다.";

            }

        }else{   //취소 버튼을 클릭했을때 

            alert("입력이 취소 되었습니다.");

        }



    </script>

</body>

</html>

 

 

 

body {

    background-color:#0c3268;

    color:rgb(243243243);

}

 

p {

    margin-top:80px;

    font-size:2em;

    font-weight:700;

    text-aligncenter;

    text-shadow:1px 2px 1px #000;

}

 

p strong {

    font-size:2.2em;

    color:yellow;

}

 

 

 

<!DOCTYPE html>

<html lang="ko">

<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <meta http-equiv="X-UA-Compatible" content="ie=edge">

    <title>세션 선택</title>

    <link rel="stylesheet" href="css/switch.css">

</head>

<body>

    <script>

        var session = prompt("관심 세션을 선택해 주세요. 1-마케팅, 2-개발, 3-디자인""1");

        

        switch(session){

            case "1" : document.write("<p>마케팅 세션은 <strong>201호</strong>에서 진행됩니다.");

                break;

            case "2" : document.write("<p>개발 세션은 <strong>203호</strong>에서 진행됩니다.");

                break;

            case "3" : document.write("<p>디자인 세션은 <strong>205호</strong>에서 진행됩니다.");

                break;

            default : alert("잘못 입력했습니다.");  // default 에서는 break 사용하지 않는다.

        }

        

    </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">

    <meta http-equiv="X-UA-Compatible" content="ie=edge">

    <title>중첩된 for 문</title>

    <link rel="stylesheet" href="css/for.css">

</head>

<body>

    <script>

        for(var k = 0;k < 5;k++){

            for(var i = 0;i < 30 ;i++){

            document.write('*');

            }

            document.write("<br>");

        }

        

    </script>

</body>

</html>

 

 

 

div {

            display:inline-block;

            padding:0 20px 30px 20px;

            margin:15px;

            border:1px solid #ccc;

            line-height:2;

     }

div h3 {

            text-align:center;

            font-weight:bold;

     }

 

 

<!DOCTYPE html>

<html lang="ko">

<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <meta http-equiv="X-UA-Compatible" content="ie=edge">

    <title>구구단 - for문</title>

    <link rel="stylesheet" href="css/gugudan.css">

</head>

<body>

    <h1>구구단</h1>

    <script>

        for(var i = 2i <= 9;i++){

            document.write("<div>");

            document.write("<h3>" + i + "단</h3>");

            for(var j = 1j<=9;j++){

                document.write(i + " X " + j + " = " + i * j + "<br>");

            }

            document.write("</div>");

        }

    </script>

</body>

</html>

 

var i = 0;

undefined

while (i < 10){

    document.write("반복 조건이 true 이면 반복합니다. <br>");

    i+=1;

}

10

var i = 0;

undefined

do{

    document.write("반복 조건이 true 이면 반복합니다. <br>");

    i+=1;

}while(i<10);

10

 

 

Factorial

 

<!DOCTYPE html>

<html lang="ko">

<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <meta http-equiv="X-UA-Compatible" content="ie=edge">

    <title>팩토리얼 계산하기</title>

    <link rel="stylesheet" href="css/factorial.css">

</head>

<body>

    <script>

        var n = prompt("숫자를 입력하세요.");

        var nFact = 1;

        var i = 2;

 

        while(i <= n){

            nFact *= i;

            i++;

        }

 

        document.write(n + "!= " + nFact);

        

    </script>

</body>

</html>

 

 

짝수 홀수 판별 예제

 

<script>

        var useNum = prompt("숫자를 입력하세요.");

 

        if(useNum != null){

            if(useNum % 2 == 0){

                document.write(useNum +"은 짝수입니다.");

            }else{

                document.write(useNum +"은 홀수입니다.");

            }

        }

 

        

    </script>

 

 

3의 배수 모두 표시 개수 확인

 

<script>

        var counter = 0;

 

        for(var i=1;i<=100;i++){

            if(i % 3 == 0){

                counter++;

                document.write(i + ",");

            }

            

        }

        document.write("<h3>3의 배수의 개수 : "counter + "<br>");

    </script>

Comments