22-05-16

valdi·2022년 5월 17일
0

노마드코더 바닐라JS 5-9일차

과제가 빡센만큼 성취감은 높다. 그저 내 능력이 한없이 뒤처질 뿐

  • 간단하게 텍스트 작성하는 방법. + 따위를 쓰지 않아도 되니 훨씬 보기 좋고 편하다.
  greeting.innerText = `Hello ${username}`;

다만 ${변수} 로 쓰는 방식이 좀 낯설어서 연습을 해야할 것 같다.


  • maxlength는 글자 수 제한에만 쓸 수 있고 숫자엔 쓸 수 없다는 것을 깨달았다.

function generateNumber(event) {
    event.preventDefault();
    let max = Math.floor(inputNumber.value);
    let generatedNumber = Math.floor(Math.random() * max);
    gameResult.classList.remove("hidden");
    gameResult.innerText = `You chose : ${guessNumber.value} , the machine chose : ${generatedNumber} `;
    if (guessNumber.value === generatedNumber){
        console.log("You win");
    } else { console.log("You lose")};
}

대충 위와 같은 코드를 작성했는데, 아무리 해도 you lose만 뜨길래 이상해서 각종 뻘짓 끝에 겨우 추측해내기를, if 문에서 '==='는 엄밀하게 같다라는 의미로 두 변수의 타입까지 같아야 한다고 해서 그게 문제겠구나 싶었다. 근데 사용자가 input한 value가 string인건지 함수를 통해 얻은 값이 string인건지 도통 내 머리로는 알 수가 없었다. 그래서 하나하나 시도해볼 수 밖에 없었다.

정수를 변환해주는 parstInt() 함수를 이용하여 시도해보았다.

if (parseInt(guessNumber.value) === generatedNumber){
        console.log("You win");
    } else { console.log("You lose")};
}

오.. 이렇게 입력했더니 제대로 if문이 돌아가기 시작했다.
거꾸로 generatedNumber에 parseInt를 씌우면 제대로 안된다.
이처럼 value로 불러온 숫자는 숫자가 아니라 string처럼 인식된다는것을 깨달았다.

profile
비전공자의 소소한 일상

0개의 댓글