javascript 내장함수 리뷰 파트 질문
let isStarted = false;
let auth = () => {
if(isStarted === false){
// 타이머가 작동중이 아닐때 타이머가 동작하게 함
isStarted = true
document.getElementById("finish").disabled = false
const token = String(Math.floor(Math.random() * 1000000)).padStart(6,"0")
document.getElementById("target").innerText = token
document.getElementById("target").style.color= "#" + token
let time = 180
let timer
timer = setInterval(function() {
if(time >= 0 ){
let min = Math.floor( time / 60 )
let sec = String (time % 60).padStart(2,"0")
// console.log(min + ":" + sec)
document.getElementById("timer").innerText= min + ":" + sec
time = time - 1
} else {
document.getElementById("finish").disabled=true
isStarted = false
clearInterval(timer)
}
},1000)
} else {
// 타이머가 작동중일때
}
}
let isStarted를 False로 주고
auth함수 안에 if문에서 isStarted가 False 일때
1.isStarted에 아무것도 할당 안하면 else문으로 넘어가지않는다.
2.처음에 isStarted에 true를 할당하고 마지막에 false를 할당한다
if문 부분에 설명이
모든게 낯선 제 머리로는 이 로직이 이해가 안되네요 ㅠㅠ
왜 true를 줬는지 ture를 주면 어떤일이 일어나는지
아무것도 안줬을때는 어떤일이 일어나는지 조금 더 자세한 설명 부탁드립니닷.
확실히 javascript파트는 어렵습니다.ㅠㅠㅠ
답변 1
1
안녕하세요! 현욱님!
if문은 else문과 짝꿍이에요!
if() 에서 괄호 안의 내용이 참이면 바로 다음에 오는 중괄호{ } 가 실행됩니다.
반대로, 거짓이면? else { } 이 부분이 실행되는거예요!
따라서 맨 처음에 isStarted 라는 변수에 false를 넣어 놓았으니, auth() 라는 함수가 실행됐을때 if(isStarted===false) 는 참이겠죠?! 따라서 바로 다음에 오는 중괄호 { } 부분이 실행되고 else{ } 는 실행되지 않았던 거예요!
다음으로 바로 아랫줄에서 isStarted에 true를 넣은 이유는, 이제 막 타이머를 실행시켰기 때문에 이 타이머가 끝나기 전까지는 더이상 또 다른 새 타이머를 안킬려고 그런거예요!
그래서 isStarted에 true를 넣었고, 그러니 다음에 auth() 라는 똑같은 함수가 다시 실행되더라도 if() 문은 이번엔 거짓이니까 새 타이머는 켜지지 않겠죠?!
여기까지 이해가 되셨다면 마지막에 왜 isStarted에 false를 넣었는지 한 번 스스로 고민해서 풀어보세요! 할 수 있어요!
fetchBoardsOfMine, fetchBoardsCountOfMine 에러 문의드립니다
0
40
1
댓글 기능 구현 중 질문드립니다.
0
67
1
쿠폰코드 발급
0
140
2
example 서버 플레이그라운드, API 접속 모두 안됩니다.
0
87
2
문의드립니다!! ㅠㅠ
0
104
2
graphql 백엔드 서버가 포폴용 빼곤 접속이 안됩니다.
0
78
2
_app.js 작성 이후로 에러가 발생하네요
0
95
2
학습자료
0
71
2
학습자료가 안열립니다.
0
51
2
플레이 그라운드 퀴즈 문제 질문이 있습니다.
0
61
0
기존강의 구매자, 업데이트 끝인가요?
0
111
3
업데이트 버전 수강
0
89
2
완벽한 프론트엔드
0
136
2
나만의 쇼핑몰 샘플 페이지 접속 확인부탁드립니다.
0
84
1
graphql 접속이 안됩니다.
0
101
2
const, let 사용 질문 드립니다.
0
71
2
싸이월드 만들기 1탄 피드백 부탁드립니다.
0
122
2
회원가입 과제 피드백 부탁드립니다.
0
81
2
styled.span / styled.input "CSS 자동완성"
0
47
1
쿠폰 발급 관련
0
167
2
서버 502 error
0
247
2
쿠폰 다시 부탁드려도 될가여?
0
140
2
a태그 패딩했을때 왜 크기가 줄어들지 않고 늘어나나요
0
185
2
2분 44초 질문
0
132
3





