본문 바로가기
알아두면쓸데있는신기한잡학사전/고군분투흔적들

[Web] FE - JavaScript 조건문, 반복문

by 대범하게 2022. 8. 22.
반응형

자바스크립트(JavaScript, 줄여서 JS)란?

자바스크립트는 프로그래밍 언어로, HTML 상에서 쓸 수 있는 언어이다.

 

Q. 왜 브라우저는 Javascript만 알아들어요? HTML안에다 파이썬, Java 같은 언어를 써서 주면 안되나?

A. 불가능한 이야기는 아니다.

다만, 이 "역사적인 이유 & 이미 만들어진 표준"이기 때문에,

모든 브라우저는 기본적으로 Javascript를 알아듣게 설계되어있고,

모든 웹서버는 HTML+CSS+Javascript를 응답(response) 데이터로 주게 되어있다.

 

Q. Java와 Javascript는 어떤 차이가 있나?

A. 인도와 인도네시아.. 바다와 바다코끼리.. 처럼 아무 관련 없다.


자바스크립트 맛보기

띄어놓은 페이지의 크롬 개발자도구 콘솔창에서 자바스크립트를 빠르게 테스트해 볼 수 있다.

(*크롬 개발자도구 콘솔창: 개발자들을 위해 만들어둔 도구로, 새로고침하면 사라진다.)

 

1. 버튼을 클릭하면 경고창이 뜨는 기능 만들기

 

2. 버튼을 클릭하면 콘솔창에 문구를 띄우는 기능 만들기

=> 결과를 브라우저에 띄우고 개발자도구 -> console 탭에서 버튼을 누를 때마다 문구가 뜨는 것을 확인한다.

 

3. 콘솔창에 직접 코드 작성하기

콘솔창에 hey()를 쓰고 엔터를 쳐서 똑같이 경고창이 뜨는 것을 확인한다.

 

        // head 안에 script 태그를 만든다.
        // 1. 버튼을 클릭하면 경고창이 뜨는 기능 만들기
        // onclick="hey()"
        function hey(){
            alert('안녕!');

        }

        // 2. 버튼을 클릭하면 콘솔창에 문구를 띄우는 기능 만들기
        // onclick="hello()"

        // 브라우저에서 개발자도구 -> console 탭을 열면
        //버튼을 누를 때마다 문구가 뜨는 것을 확인할 수 있다.
        // 복잡한 코드를 실행할 때 중간중간에 console.log()를 이용하여 확인이 가능하다.

 

        function hello(){
            console.log('Hello!');
        }

<!doctype html>
<html lang="en">
<head>
    <!-- Required meta tags -->
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

    <!-- Bootstrap CSS -->
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/css/bootstrap.min.css"
        integrity="sha384-B0vP5xmATw1+K9KRQjQERJvTumQW0nPEzvF6L/Z6nronJ3oUOFUFpCjEUQouq2+l" crossorigin="anonymous">

    <!-- Optional JavaScript -->
    <!-- jQuery and Bootstrap Bundle (includes Popper) -->
    <script src="https://code.jquery.com/jquery-3.5.1.slim.min.js"
        integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj"
        crossorigin="anonymous"></script>
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/js/bootstrap.bundle.min.js"
        integrity="sha384-Piv4xVNRyMGpqkS2by6br4gNJ7DXjqk09RmUpJ8jgGtD7zP9yug3goQfGII0yAns"
        crossorigin="anonymous"></script>

    <title>SW사관학교 정글 | 자바스크립트 연습하기</title>

    <link href="https://fonts.googleapis.com/css2?family=Jua&display=swap" rel="stylesheet">

    <style>
        * {
            font-family: 'Jua', sans-serif;
        }

        .wrap {
            margin: auto;
            width: 900px;
        }

        .comment {
            font-weight: bold;
            color: blue;
        }

        .posting-box {
            margin: 10px auto 30px auto;
            width:500px;

            border: 3px solid black;
            border-radius: 5px;

            padding: 25px;
        }
    </style>

    <script>
        // head 안에 script 태그를 만든다.
        // 1. 버튼을 클릭하면 경고창이 뜨는 기능 만들기
        // onclick="hey()"
        function hey(){
            alert('안녕!');

        }

        // 2. 버튼을 클릭하면 콘솔창에 문구를 띄우는 기능 만들기
        // onclick="hello()"

        // 브라우저에서 개발자도구 -> console 탭을 열면
        //버튼을 누를 때마다 문구가 뜨는 것을 확인할 수 있다.
        // 복잡한 코드를 실행할 떄 중간중간에 console.log()를 이용하여 
        // 결과를 콘솔창에 출력하면서 잘 실행되는지 확인가능
        function hello(){
            console.log('Hello!');
        }
    </script>
</head>

<body>
    <div class="wrap">
        <div class="jumbotron">
            <h1 class="display-4">나홀로 링크 메모장!</h1>
            <p class="lead">중요한 링크를 저장해두고, 나중에 볼 수 있는 공간입니다</p>
            <hr class="my-4">
            <p class="lead">
                <a class="btn btn-primary btn-lg" href="#" role="button">포스팅박스 열기</a>
            </p>
        </div>
        <div class="posting-box">
            <div class="form-group">
                <label for="exampleInputEmail1">아티클 URL</label>
                <input type="email" class="form-control" aria-describedby="emailHelp"
                    placeholder="">
            </div>
            <div class="form-group">
                <label for="exampleInputPassword1">간단 코멘트</label>
                <input type="password" class="form-control" placeholder="">
            </div>
            <button onclick="hello()" type="submit" class="btn btn-primary">기사 저장</button>
        </div>
        <div class="card-columns">
            <div class="card">
                <img class="card-img-top"
                    src="https://d2ur7st6jjikze.cloudfront.net/offer_photos/29590/185689_medium_1525763241.jpg?1525763241"
                    alt="Card image cap">
                <div class="card-body">
                    <a href="http://naver.com" class="card-title">여기 기사 제목이 들어가죠</a>
                    <p class="card-text">기사의 요약 내용이 들어갑니다. 동해물과 백두산이 마르고 닳도록 하느님이 보우하사 우리나라만세 무궁화 삼천리 화려강산...</p>
                    <p class="card-text comment">여기에 코멘트가 들어갑니다.</p>
                </div>
            </div>            
        </div>
    </div>
</body>

</html>

위 코드는 1번의 창이 뜨게끔 연습한 결과

 

반응형