[JavaScript] 개요

aljongjong·2021년 12월 29일
0

학원 복습일지

목록 보기
57/84

JavaScript

웹 브라우저에서 많이 사용되는 인터프리터 방식의 스크립트 언어(함수, 객체지향)
   - 인터프리터 방식 : 컴파일 과정 없이 실행하면서 코드를 하나씩 읽어내는 방식이다. 
                   (코드 문법에 오류가 있으면 실행 시점에 알 수 있다.)
1. 자바스크립트 사용법
    inline(인라인)
    <!--  
        태그 내에 직접 간단한 코드를 작성해서 실행하는 방법
        자바스크립트 소스가 몇 줄 안되는 경우 inline 방식을 사용한다.
    -->
    <button onclick="alert('버튼 클릭!!!');">알림 창 출력</button>
    <button onclick="console.log('버튼 클릭!!!');">console 출력</button>


internal(내부 스크립트)
    <!--  
        script 태그 영역에 함수 단위로 소스코드를 작성해놓고
        이벤트 발생 시 해당 함수를 호출함으로써 실행하는 방식이다.
    -->
    <button onclick="btnClick();">알림 창 출력</button>
    <button id="btn1">console 출력</button>

    <script>
        // script 태그 내에서 아이디를 통해 button 요소(객체)를 변수에 대입
        var btn1 = document.getElementById('btn1');

        console.log(btn1);

        // 해당 버튼을 클릭했을 때의 이벤트 핸들러 연결
        btn1.onclick = function () {
            console.log('버튼 클릭!');
        };

        function btnClick() {
            alert('버튼 클릭');
        }
    </script>


external(외부)
    <!--  
        별도의 .js 파일로 작성해서 html 파일에서 가져다 사용하는 방법
        자바스크립트의 양이 많거나 중복되는 코드가 있을 경우 자바스크립트 코드 부분을 별도의 외부 파일로 작성한다.
    -->
    <button onclick="external();">console 출력</button>



2. 데이터 입출력
    1) 데이터 입력
    <!--  
        window.confirm()
            - 어떤 질문에 대해 "예 / 아니오"의 결과를 얻을 때 사용한다.
            - 확인 버튼과 취소 버튼이 나타나며 확인 버튼 클릭 시 true,
              취소 버튼 클릭 시 false를 리턴한다.
    -->

    <button onclick="checkConfirm();">confirm</button>

    <script>
        function checkConfirm() {
            // console.log(window.confirm('졸리신가요?'));

            if(confirm('여러분 배고프신가요?')) {
                alert('저도 배고파요 ㅜㅜ');
            } else {
                alert('저만 배고픈가요?ㅜㅜ');
            }
        }
    </script>
    <!--  
        window.prompt()
            - 텍스트 필드, 확인, 취소 버튼이 있는 대화 상자를 띄운다.
            - 입력한 메시지 내용을 리턴값으로 돌려 받는다.
    -->

    <button onclick="checkPrompt();">prompt</button>

    <script>
        function checkPrompt() {
            // var name = window.prompt('당신의 이름은 무엇인가요?');
            var name = prompt('당신의 이름은 무엇인가요?');

            console.log(name);

            if(name != null && name.trim() != '') {
                // alert(name + '님 환영합니다.');
                alert(`${name}님 환영합니다.`);

                // 'a'
                // "a"
                // `a`
                
            }
        }
    </script>





    2) 데이터 출력
    <!--  
        document.write()
            - 브라우저 화면상의 페이지에 직접 값을 출력한다.
    -->
    <script>
        document.write('<mark><b>document.write()로 출력한 결과!</b></mark>');
    </script>

<div id="div1">
    자바스크립트에서 태그 요소의 값을 읽거나 변경할 때 <b>innerHTML</b> 속성을 사용한다.
</div>

<button onclick="checkInnerHTML();">innerHTML</button>

<script>
    function checkInnerHTML() {
        var div1 = document.getElementById('div1');
        document.getElemet

        console.log(div1);
        console.log(div1.innerHTML);
        console.log(div1.innerText);

        // div1.innerHTML = div1.innerHTML + '<br> innerHTML 속성으로 값 변경';
        div1.innerHTML += '<br> innerHTML 속성으로 값 변경';
    }
</script>
<!--  
    console.log()
        - 개발자 도구의 콘솔 화면에 출력하고자 할 때 사용한다.
-->

<button onclick="checkConsole();">console.log</button>

<script>
    function checkConsole() {
        console.log('콘솔 화면에 출력합니다.');
        window.console.log('window는 생략이 가능합니다.');
    }
</script>



3. HTML 요소에 접근하기
    1) 아이디로 접근

    <button onclick="accessId();">아이디로 접근</button>

    <div id="area1" class="area"></div>

    <script>
        function accessId() {
            var area1 = document.getElementById('area1');

            console.log(area1);

            area1.style.backgroundColor = 'darkblue';
            area1.innerHTML = '색상 변경 완료';
            area1.style.color ='#fff';
        }
    </script>


2) 태그 명으로 접근
    <ul>
        <li>목록 1</li>
        <li>목록 2</li>
        <li>목록 3</li>
        <li>목록 4</li>
        <li>목록 5</li>
    </ul>

    <button onclick="accessTagName();">태그 명으로 접근</button>

    <script>
        function accessTagName() {
            var red;
            var green;
            var blue;
            var list = document.getElementsByTagName('li');
            // 배열 형식으로 리턴

            console.log(list);

            for(var i = 0; i < list.length; i++) {
                console.log(list[i]);

                red = parseInt(Math.random() * 255) + 1;
                green = parseInt(Math.random() * 255) + 1;
                blue = parseInt(Math.random() * 255) + 1;

                list[i].style.backgroundColor = `rgb(${red}, ${green}, ${blue})`;
            }
        }
    </script>


3) name으로 접근
    <form>
        <fieldset>
            <legend>취미</legend>
            <label><input type="checkbox" name="hobby" value="game">게이</label>
            <label><input type="checkbox" name="hobby" value="music">음악 감상</label>
            <label><input type="checkbox" name="hobby" value="movie">영화 보기</label>
        </fieldset>
    </form>

    <div id="area2" class="area"></div>

    <button onclick="accessName();">name으로 접근</button>

    <script>
        function accessName() {
            var checkItem = '';
            var area2 = document.getElementById('area2');
            var hobbies = document.getElementsByName('hobby');

            console.log(hobbies);

            for(var i = 0; i < hobbies.length; i++) {
                console.log(hobbies[i].value);
                console.log(hobbies[i].checked);

                if(hobbies[i].checked) {
                    // area2.innerHTML += `${hobbies[i].value} 선택함 <br>`;
                    checkItem += `${hobbies[i].value} 선택함 <br>`;
                }
            }
            area2.innerHTML = checkItem;
        }
    </script>


4) text 박스의 value값 읽어 오기

    <form>
        <label><input type="text" name="userName" id="userName"></label>
    </form>

    <div id="area3" class="area"></div>

    <button onclick="readValue();">input 값 확인</button>

    <script>
        function readValue() {
            var area = document.getElementById('area3');
            var input = document.getElementById('userName');
            var value = input.value;

            if (value.trim() == '' || value.length == 0) {
                alert('이름을 입력하세요.');
                area.innerHTML = '';
                input.focus();
            } else {
                area.innerHTML = value;
                input.value = '';
                input.focus();
            }
        }
    </script>



0개의 댓글