코드카타 2주차

function romanToNum(s) {
  let answer = 0;
  const roman = {
    I: 1,
    V: 5,
    X: 10,
    L: 50,
    C: 100,
    D: 500,
    M: 1000,
  };
  for (let i = 0; i < s.length; i++) {
    if (roman[s[i]] < roman[s[i + 1]]) {
      // 마지막값 들어왔을때 undefined를 비교할 땐 무조건 '거짓'으로.
      answer -= roman[s[i]];
    } else {
      answer += roman[s[i]];
    }
  }
  return answer;
}

✅눈여겨 봐야할것들

1. 문자열도 배열처럼 뽑아서 쓸 수 있다.

ex) "ABCD"[0] // "A"
ex) "ABCD"[3] // "D"
ex) "ABCD"[4] // undefined

2. undefined는 falsy 값이다. 숫자와 비교하면 항상 거짓이다.

if(1 > undefined){
  console.log("참");
}else{
  console.log("거짓");
}

결론 :1보다 크든 작든 항상 "거짓"이 나온다

추가) truthy, falsy값엔 여러가지가 있다.

truthy는 값이 있다면 해당
falsy는 undefined,null,''등등

"false"와 "true"는 스트링이므로 값이있는거이셔 truthy한값.
최근 이거로 문제 삼아진적이 있어 적어놈

좋은 웹페이지 즐겨찾기