[DAY - 24] setInterval, dom, 객체, length

2023. 4. 5. 21:31·🔥 부트캠프-웹 개발 🔥/JavaScript
  • setInterval
  • dom
  • 객체
  • length

1) setInterval

어제 잠깐 배웠던 setInterval를 활용해 간단한 출력을 해보았다.

    <script>
        'use strict';
        
        let cnt = 0;
        const make=()=>{
            document.write(`출력 : ${cnt} <br>`)
            cnt++;
        }
        setInterval(make, 1000);
    </script>

make함수를 1000(1초)의 인터벌을 두어 호출하게 된다.

처음엔 0이었던 cnt가 출력이 되고 ++로 인해 1씩 늘어나 출력이 된다.

 

2-1) dom#1

    <script>
        'use strict';
        let dom = document.querySelector('.box')
        let btn = document.querySelector('button')

        btn.addEventListener('click', function(){
            dom.innerHTML = '안녕';
        })
    </script>

button인 btn을 click 하면 dom인 box안에 안녕이 추가된다.

 

2-2) dom#2

        let dom = document.querySelector('.box');
        let btn1 = document.querySelector('.btn1')
        let btn2 = document.querySelector('.btn2')

        let cnt = 0;
        let timerID = null, interval = 1000;

        dom.innerHTML = cnt;
        
        function make(){
            cnt++;
            dom.innerHTML = cnt;
        }
        btn1.addEventListener('click', function(){
            clearInterval(timerID);
        })
        btn2.addEventListener('click', function(){
            timerID = setInterval(make , interval);
        })

시작 button을 누르면 make함수가 1초의 인터벌을 두고 실행되고 중지 button을 누르면 정지하게 된다.

 

3) 객체

객체는 각종 사물을 정의한 뒤 키값과 메서드 값을 넣을 수 있다.

let colors = {
    red : 'red',
    green : 'green',
    blue : 'blue'
}

let gold = 'gold';
colors[gold] = gold;

// 객체명은 변수규칙과 동일하다
console.log(`colors객체명 안에 red키 값 : ${colors.red}`);
console.log(`colors객체명 안에 green키 값 : ${colors['green']}`);
console.log(`colors객체명 안에 blue키 값 : ${colors['blue']}`);
console.log(`colors객체명 안에 gold키 값 : ${colors['gold']}`);



colors객체명 안에 red키 값 : red
colors객체명 안에 green키 값 : green
colors객체명 안에 blue키 값 : blue
colors객체명 안에 gold키 값 : gold

colors객체 안에 red, green, blue 키를 넣은 후 각각 값을 부여했다.

그리고 추가로 gold를 정의하고 colors[gold]로 colors객체에 추가했다.

키의 값을 호출할 땐 colors.red 또는 colors['red']로 호출할 수 있다.

 

    <script>
        'use strict';
        let dog = {
            name : '황구',
            age : 2,
            color : '갈색',
            addr : '영통구',
            food : '고구마'
        }
        document.write(`이름 : ${dog.name} <br>`);
        document.write(`나이 : ${dog.age} <br>`);
        document.write(`색상 : ${dog.color} <br>`);
        document.write(`주소 : ${dog.addr} <br>`);
        document.write(`음식 : ${dog.food} <br>`);
    </script>

객체

이처럼 객체의 원하는 키 값만 출력할 수 있다.

 

메서드는 객체의 행동이다.

    <script>
        'use strict';
        let cat = {
            name : '흰둥이',
            age : 3,
            color : '흰색',
            food : '츄르',

            // this - 객체 자기 자신(cat)
            eat : function(){
                document.write(`${this.name}는 ${this.food}을 먹는다 <br>`);
            },
            sleep : function(){
                document.write(`${this.name}는 잠을 잔다 <br>`);
            },
            run : function(){
                document.write(`${this.name}는 달린다 <br>`);
            }
        }
        document.write(`이름 : ${cat.name} <br>`);
        document.write(`나이 : ${cat.age} <br>`);
        document.write(`색상 : ${cat.color} <br>`);
        document.write(`음식 : ${cat.food} <br>`);
        document.write(`-----------------------<br>`);

        // 메서드 : 객체.메서드()
        // 함수() : 객체가 존재하지 않는다

        cat.eat();
        cat.sleep();
        cat.run();
    </script>

메서드

메서드에는 함수가 들어갈 수 있으므로 메서드를 출력하면 각 메서드의 함수들이 호출된다.

 

4) length 

    <script>
        'use strict';
        let x = prompt('글자를 입력하세요.')

        document.write(`글자수 : ${x.length}`);
    </script>

공백과 .이 포함되어 12라는 결괏값이 출력됐다.

이를 이용해 여러 예제에 적용이 가능하다.

    <script>
        'use strict';
        let userid;

        userid = prompt('아이디를 입력하세요.');
        if(userid.length>=8 && userid.length<=12) {
            alert('사용 가능한 아이디입니다.');
        } else {
            alert('8 ~ 12 글자 사이 다시 입력하세요.');
        }
    </script>

prompt로 입력을 받은 userid의 length가 if문의 조건에 따라 다른 alert창이 나오게 된다.

 

    <script>
        'use strict';
        let code;
        code = prompt(`코드 번호 입력`);
        let len;
        let m="";
        len = code.length;
        for (let i = 0; i+len < 6; i++) {
            m= '0'+m;
        }
        document.write(m+code);
    </script>

code를 받아 총 6자리의 제품번호로 변환하고 싶을 때 length를 사용하면 된다.

code의 자릿수를 확인한 후 for문의 i와 합쳐 6이 될 때까지 m을 늘려간다. 

m=0

m=00

m=000

...

그 후 처음 받았던 code와 합치면 6자리 숫자로 출력된다.

'🔥 부트캠프-웹 개발 🔥/JavaScript' 카테고리의 다른 글
  • [DAY - 26] array, for~in, for~of, join, push, pop, shift, unshift, sort, filter
  • [DAY - 25] charAt, slice, substring, toLowercase / toUppercase, concat, trim, indexOf, search, includes, split, replace, padstart
  • [DAY - 23] 재귀함수, 고차함수, 내장함수(parseInt, parseFloat, isNaN, setTimeout, setInterval)
  • [DAY - 16] this, 매개변수, return, 화살표함수, 콜백함수
Yeonhub
Yeonhub
✨ https://github.com/yeonhub 📧 lsy3237@gmail.com
  • Yeonhub
    비 전공자의 Be developer
    Yeonhub
  • 전체
    오늘
    어제
    • 전체보기 (169)
      • 🔍 Tech 🔍 (19)
        • Front-End (11)
        • Back-End (4)
        • AI (1)
        • Server (1)
        • Etc (2)
      • 💡 원티드 프리온보딩 챌린지 💡 (14)
        • PRE-ONBOARDING_AI (11월) (1)
        • PRE-ONBOARDING_FE (2월) (2)
        • PRE-ONBOARDING_FE (1월) (2)
        • PRE-ONBOARDING_FE (12월) (9)
      • 🔥 부트캠프-웹 개발 🔥 (118)
        • HTML5 (7)
        • CSS3 (21)
        • JavaScript (27)
        • JavaScript_advanced (9)
        • React (24)
        • Next (1)
        • MYSql (5)
        • Node (5)
        • 오늘하날(개인프로젝트) (12)
        • 이젠제주투어(팀프로젝트) (7)
      • 💻 CS 💻 (1)
        • 알고리즘 (1)
      • ⚡ 코딩테스트 ⚡ (11)
        • JavaScript (11)
      • 📚 Books 📚 (6)
        • 클린 아키텍처 (2)
        • 인사이드 자바스크립트 (4)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • Github
  • 공지사항

  • 인기 글

  • 태그

    react native bottom sheet
    expo map
    react vite
    라스콘
    react native firebase analytics
    php node
    expo node fcm
    expo fcm push
    react native expo fcm
    expo admob
    node fcm
    컴파운드 컴포넌트 패턴
    bottom sheet
    프론트엔드 테스트코드
    node cron
    라스콘4
    javascript fcm
    expo google map
    expo deep linking
    Node
    node.js fcm
    python node
    rn admob
    expo fcm
    react native admob
    expo 지도
    rn bottom sheet
    node crontab
    react native analytics
    expo 길찾기
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Yeonhub
[DAY - 24] setInterval, dom, 객체, length
상단으로

티스토리툴바