TIL 19 day JS 기초하면서 놓친 것 Part 2

Winney·2020년 9월 17일
0
post-thumbnail

JS 기초하면서 놓친 것 Part 2

1. 조건문에서 condition 설정 시 유의점

string의 indexOf 함수 사용 시 결과는 number로 나온다.
조건문에서 0은 false, 0을 제외한 모든 숫자는 true가 된다.

function sliceCityFromAddress(address) {
  // your code here
  let shi = address.indexOf('시');
  let doe = address.indexOf('도');
  let space = address.indexOf(' ');
  
  if (doe !== -1) {
    let revise = address.slice(0, space) + address.slice(shi+1);
    return revise;
  } else if (doe === -1) {
      let revise2 = address.slice(shi+2, address.length);
      return revise2;
  }
}

(doe !== -1)를 보면 도가 false가 아닌게 아닐 때 즉, true일 때를 확인하는 condition이다
보면서 (doe === 1)로 하면 안 되나?하고 생각을 했는데 생각해보면
let doe = address.indexOf('도')는 숫자가 결과값으로 나온다.
그렇기 때문에 조건문에서 조건 확인 시 숫자를 쓸 때 비교할 값이 숫자일 때 사용에 주의 할 필요가 있다.

2. string을 number로 바꿔주는 함수

Number(), parseInt(), parseFloat()

let num1 = '1234'; 
let num2 = '1234.56$'; 

console.log(Number(num1));      // 1234
console.log(Number(num2));      // NaN
console.log(parseInt(num2));    // 1234
console.log(parseFloat(num2));  // 1234.56

세 함수 모두 data type을 string에서 number로 변환시켜주지만 차이가 있다.
1. Number() : 문자형 숫자 외의 다른 문자가 들어가면 NaN(Not a Number)가 나온다.
2. parseInt() : 정수로 변환한다.
3. parseFloat() : 소수점까지 변환한다.

profile
프론트엔드 엔지니어

0개의 댓글