멋쟁이사자처럼 프론트엔드 스쿨/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 과제 리뷰