멋쟁이사자처럼 프론트엔드 스쿨/FE TIL
[멋사 프론트엔드 스쿨]9월 21일 수요일 TIL_CODELION Javascript
백구스
2022. 9. 22. 09:49
테킷데이다.
Javascript로 만드는 [로또 번호 추첨기]
이해가 안가서 라운지에 물어봤다
var num = Math.random() * 45 + 1;
var ball1 = parseInt(num);
- 저 이거 이해안가는데 그럼 1부터 46까지 아니에요? 왜 1부터 45가 되는거에요?
- Math.random()45 => 0~44.9999999999 ~
Math.random()45 +1 => 1~45.9999999999999~
parseInt(Math.random()*45 +1) => 1~45입니다
Int자료형으로 변환시 내림을 해서 그렇게됩니다!
(parseInt를하면 소수점이하의 숫자를 자릅니다) - Math.random() 자체가 0 이상 1 미만의 float(소숫점 달고다니는 실수) 난수를 발생시키는 메서드(기능)이에요
우리가 필요한 숫자는 1 ~ 45 까지여서
0 이상 1미만의 수를 뱉어내는 Math.random()에 45를 곱해줘서
0 이상 45 미만의 수를 뱉어내는 난수 생성기를 만듭니다.
여기다 1을 더해줘서 1 이상, 46 미만의 숫자를 생성하는 난수 생성기가 만들어집니다.
즉 math.random() * 45 + 1 은
1.0000000... 부터 45.999999999 까지 만들 수 있는 기능이 됩니다.
얘를 parseInt를 이용해서 강제로 반내림하면 1부터 45까지의 정수를 출력할 수 있습니다.
반복문
- for문
for (var i = 0; i<6; i++) {
반복하려는 코드
}
- while문
while (조건) {
반복하려는 코드
}
조건문
- if문
if (조건) {
참일 경우
}
만약 중복이 아니라면 .push
.indexOf(값)
값이 있으면 위치 인덱스가 나오고,
없으면 -1
<script>
var lotto = [];
for (var i = 0; i < 6; i++){
var num = parseInt(Math.random() * 45 + 1);
if (lotto.indexOf(num) == -1) {
lotto.push(num);
}
}
document.write(lotto);
</script>
이러면 중복된 값이 나오지 않는다는데
아.. 뭔가 50%만 이해가는 듯
- 변수명.sort((a,b)=>a-b)
- 배열 값 오름차순 정렬
내림차순은 b-a
DOM
Document Object Model
- function 함수이름() {}
- getElementById
- content.substring(0,200)
저녁 CSS 특강
zigzag 과제 리뷰