JavaScript 인용구 랜덤으로 출력하기

2023. 8. 20. 01:09·JavaScript
728x90
반응형
SMALL

🟰위와 같이 새로고침을 할 때 자동으로 다음 인용구가 랜덤으로 나오도록 만들어보는 연습을 하려고 한다.

⏬준비할 html코드(id가 quote인 div태그안의 span태그에 인용구를 넣으려고 한다)

<div id="quote">
    <span></span>
    <span></span>    
    </div>

⏬JS코드 ( quotes값에 넣고자 하는 인용구와 text를 넣어준다.)

🔆quote안의 두개의 span 을 first-child, last-child를 통해 불러온다
🔆Math.random()을 통해 랜덤정수를 가져온다.(quotes.length를 곱해서 해당 길이만큼 범위를 확장)
🔆Math.floor를 통해 소수점을 버린다. Math.random은 double타입으로 나오기 때문
🔆그렇게 생성된 랜덤 인덱스에 해당하는 quote와 text를 각 span에 넣어주기만 하면 끝!

const quotes = [
    {
        quote : "죽고자 하면 살것이다.",
        text : "이순신",
    },
    {
        quote : "백문이 불여일문",
        text : "사자성어",
    },
    {
        quote : "사랑은 은하수 다방에서 만나",
        text : "10cm",
    },
    {
        quote : "이건 사랑이 아냐 이건 운명이 아냐 그냥 정이라고 하자",
        text : "Big Naughty",
    },
    {
        quote : "총 맞은 것처럼",
        text : "백지영",
    }
]

const quote = document.querySelector("#quote span:first-child");
const author = document.querySelector("#quote span:last-child");

const todaysQuote = quotes[Math.floor(Math.random()*quotes.length)];

quote.innerText = todaysQuote.quote;
author.innerText = todaysQuote.text;
/* Math.random은 0~1사이의 랜덤 실수를 제공한다. */

/** Math.round()는 반올림 함수 
 * Math.ceil()은 올림 함수
 * Math.floor()은 내림 함수
*/

 

728x90
반응형
SMALL

'JavaScript' 카테고리의 다른 글

JavaScript - toDoList(할일 목록 만들기)  (96) 2023.08.21
JavaScript 실시간 시간 출력하기  (0) 2023.08.09
JavaScript07 - sort함수를 통한 오름차순,내림차순 정렬  (0) 2023.08.01
JavaScript06 - switch를 사용한 이동효과 만들기  (0) 2023.08.01
JavaScript05 - 조건몬(if) (예시 포함)  (1) 2023.07.31
'JavaScript' 카테고리의 다른 글
  • JavaScript - toDoList(할일 목록 만들기)
  • JavaScript 실시간 시간 출력하기
  • JavaScript07 - sort함수를 통한 오름차순,내림차순 정렬
  • JavaScript06 - switch를 사용한 이동효과 만들기
공부하고 기억하는 공간
공부하고 기억하는 공간
IT 비전공자로 시작하여 훌륭한 개발자가 되기 위해 공부하고 있는 공간입니다. 틀린 내용이나 부족한 부분이 있으면 댓글로 알려주세요 바로 수정하겠습니다.
IT - railroadIT 비전공자로 시작하여 훌륭한 개발자가 되기 위해 공부하고 있는 공간입니다. 틀린 내용이나 부족한 부분이 있으면 댓글로 알려주세요 바로 수정하겠습니다.
    250x250
  • 공부하고 기억하는 공간
    IT - railroad
    공부하고 기억하는 공간
  • 전체
    오늘
    어제
    • 분류 전체보기 (325)
      • 면접 준비 (22)
        • OS (6)
        • Spring Security (0)
        • Java (3)
        • DB (11)
        • Network (3)
      • ElasticSearch (2)
      • Kafka (4)
      • Spring (22)
        • Spring Cloud (7)
        • Security6 (5)
        • JPA (12)
        • 프로젝트 리팩토링 회고록 (4)
        • Logging (8)
        • Batch (2)
      • Redis (17)
        • Redis 개념 (8)
        • Redis 채팅 (5)
        • Redis 읽기쓰기 전략 (1)
      • AWS (11)
      • 리눅스 (29)
        • 리눅스 마스터 2급 (5)
        • 네트워크(기초) (7)
        • 리눅스의 이해 (6)
        • 리눅스의 설치 (2)
        • 리눅스 운영 및 관리 (6)
      • JAVA-기초 (16)
        • JAVA기본 (11)
        • Design Pattern (5)
      • JSP (27)
        • JSP 기본 개념 (10)
        • JSP (1)
      • SQL (1)
      • TIL (36)
      • 문제 풀이 (2)
        • Programmers (9)
        • 백준 문제풀이 (28)
      • JavaScript (10)
      • HTML (17)
      • Ngrinder (1)
        • Ngrinder 문서 정리 (1)
  • 블로그 메뉴

    • 링크

    • 공지사항

    • 인기 글

    • 태그

      리눅스마스터2급
      레디스
      리눅스마스터2급정리
      redis 채팅
      springsecurity
      CSS
      스프링프레임워크
      자바 면접질문
      Spring Data Redis
      JavaScript
      Spring
      리눅스
      HTML
      자바스크립트
      java
      프로그래머스
      JSP
      자바
      자바 반복문
      자바 알고리즘
      redis
      jsp기초
      jsp request
      백준
      자바 면접
      spring redis
      JS
      자바기초
      Springframework
      Til
    • 최근 댓글

    • 최근 글

    • hELLO· Designed By정상우.v4.10.3
    공부하고 기억하는 공간
    JavaScript 인용구 랜덤으로 출력하기

    개인정보

    • 티스토리 홈
    • 포럼
    • 로그인
    상단으로

    티스토리툴바

    단축키

    내 블로그

    내 블로그 - 관리자 홈 전환
    Q
    Q
    새 글 쓰기
    W
    W

    블로그 게시글

    글 수정 (권한 있는 경우)
    E
    E
    댓글 영역으로 이동
    C
    C

    모든 영역

    이 페이지의 URL 복사
    S
    S
    맨 위로 이동
    T
    T
    티스토리 홈 이동
    H
    H
    단축키 안내
    Shift + /
    ⇧ + /

    * 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.