TIL_ java script 22년 11월 8일

Suding·2022년 11월 8일
0

항해99 10기 (TIL, WIL)

목록 보기
2/10

2일차 스터디 목표

  • 어제 배운내용 복습하기
  • 챕터 3 완강, 확인 문제 풀기, 오답 정리 하기
  • 책에 나온 손코드 따라하기 배운 내용으로 내가 직접 코딩 짜보기
  • 셀프 평가, 잘한점, 개선할점, 내일 시도할 것 기록하기

새로배운 개념

03-2:

  • 조건부 연산자
const input =prompt('input number','')
const number = Number(input)

const result = (number >= 0) ? 'number is greater than 0':'number is less than 0'
alert(result)
// 불 표현식 ? 참일 때 결과: 거짓일 때 결과 
//number= 7,  7 >= 0 result= true , 'number is greater than 0' 출력 
//number= -5, -5 >= 0 result= false, 'number is less than 0' 출력
  • 짧은 조건문
true || console.log ('good') // 좌변이 참이면 우변 실행 하지 않는다 > true 출력 
false || console.log('good') // 좌변이 거짓이면 우변 실행 > good 출력 
false || 불 표현식이 거짓일 때 실행할 문장 

true && console.log ('good') // 양변이 모두 참이여야 true > true 
false &&

오답노트

prompt 가 실행이 안된다 그래서 구글링을 했더니 prompt-sync 패키지를 설정하고 prompt 를 require 하라고 했다.

const prompt=require("prompt-sync")({sigint:true});

var name = prompt("What's your name");
console.log("hello"+name+"!");

레퍼런스: https://www.geeksforgeeks.org/javascript-is-showing-reference-error-prompt-is-not-defined/

근데도 크롬 브라우저에서 require is not defined 에러 메세지가 떴다.

나는 지금 브라우저에서 prompt를 실행하려고 하는거니까 require 코드가 필요 없었던 것이다. 인터넷에서 찾았던 코드를 삭제하고 const number = prompt(’message’,’ ‘) 이렇게 다시 변경했더니 브라우저에서 prompt가 잘 실행됬고 하기 조건문에 맞게 알럿이 잘 떴다.

const number = prompt('enter a number', '')
if (number > 0) {
    alert('positive number')
} else {
    if (number <0) {
        alert ('negative number')
    }
}

인터넷에서 찾은 오류 해결법을 적용하기전에 내가 코드를 실행하는 목적은 무엇인지, 내 코드는 어디서 실행되는지 먼저 확인해 보고 적용해보는 습관이 필요하다.

03-1 확인문제 6번 : 월을 입력하면 계절을 구분하는 프로그램

  • 입력값이 음수이면 에러 알럿 띄우기
  • 겨울: 12, 1, 2
  • 봄: 3,4,5
  • 여름: 6,7,8
  • 가을: 9,10,11
  • 계절 구분이 안됨 ㅠㅠ 조건을 어떻게 하면 바뀔까? 잘 모르겠다
    • 현재 코드에서는 3을 입력하면 겨울이 나와야하는데 봄이 나온다
const month = prompt('enter the number of a month', '')
if (month <0) {
    alert ('not a vailid entry, enter postive number')
} else {
    if ( month < 6) {
    alert('spring')
} else if ( month <9 ) {
    alert ('summer') 
} else if ( month < 11){
    alert ('fall')
} else{
    alert ('winter')
}
}

오류 해결

  • if 사용할 경우 중첩 조건문을 사용해야 하고, 봄을 예로 들면 봄이 되려면 month 는 3보다 크거나 같고 6보다 작아야 한다 라고 코드를 짜야한다
if ( month <= 3) {
    if (month < 6){
        alert ('spring')   
    }
}

if (month <= 6){
    if (month <9){
        alert('summer')
    }
}
if (month <= 9){
    if (month <12){
        alert('fall')
    }
} else {
    alert('winter')
}
  • 챕터 진도를 나가보니 && (논리곱 연산자)를 사용하면 코드를 깔끔하게 만들 수 있는 법을 배워서 적용해 봤는데 sytext error: Unexpected token '<’ 에러가 발생했다
  • 해결: && 뒤에 month를 입력해줘야 한다
const month = prompt('enter the number of a month', '')
if (month <0) {
    alert ('not a vailid entry, enter postive number')
} else {
    if ( 3 <=  month && month < 6) {
    alert('spring')
    } else if ( 6 <= month && month<9 ) {
        alert ('summer') 
    } else if ( 9 <= month && month < 12){
        alert ('fall')
    } else {
        alert ('winter')
    }
}

회고

  • 셀프 평가:
    • 오류해결을 위해 구글링해서 해결방법을 시도해보는것은 좋은 습관이지만 내 코드에 맞는 해결책인지 내 코드의 목적과 내 코드가 실행되는 환경등을 생각해보는 습관도 필요하다.
  • 잘한 점
    • 오류해결 하기 위해 기술매니저님과 질의응답 했고, 답지를 배끼지 않고 결국 내 손으로 직접 코드를 다시 짜보고 오류를 해결했다!
  • 개선할 점
    • 문제 풀때 막히면 계속 붙잡고 있지말고 답지를 찾아보자, 오늘은 시간 분량 실패 챕터 3 전체 문제를 풀지 못하고 그룹스터디에 들어가서 아쉬웠다
  • 내일 시도 해볼 것
    • 내일은 시험보는 날이고 밍글데이가 있으니까 밍글데이 이전, 이후에 여유가 있으면 챕터 2, 3 복습하기
profile
웹개발자가 되고 싶은 수딩의 코딩 일지

0개의 댓글