JavaScript의 자료형과 JavaScript만의 특성은 무엇일까 ?

SS·2022년 9월 23일
0
  • 느슨한 타입(loosely typed)의 동적(dynamic) 언어

모든 타입의 값으로 할당(및 재할당) 가능하다.

let foo = 42 // foo가 숫자
foo = 'bar' // foo가 이제 문자열
foo = true // foo가 이제 불리언

- JavaScript 형변환

함수와 연산자에 전달되는 값은 대부분 적절한 자료형으로 자동 변환되는데 이런 과정을 형 변환이라고 한다.

자바스크립트는 타입이 매우 유연한 언어로 자바스크립트 엔진이 필요에 따라 ‘암시적변환’을 하기도 하고, 개발자의 의도에 따라 ‘명시적변환’을 하기도 한다.

  • 암시적변환
    **문자형으로의 형 변환**은 문자형의 값이 필요할 때 일어난다.
    
    `alert`메서드는 매개변수로 문자형을 받기 때문에, `alert(value)`에서 value는 문자형이어야 한다. 만약, 다른 형의 값을 전달 받으면 이 값은 문자형으로 자동 변환된다.
    
    `String(value)` 함수를 호출해 전달 받은 값을 문자열로 변환 할 수도 있다.
    
    let value = true;
    alert(typeof value); // boolean

value = String(value); // 변수 value엔 문자열 "true"가 저장됩니다.
alert(typeof value); // string

false는 문자열 "false"로, null은 문자열 "null"로 변환되는 것과 같이, 문자형으로의 변환은 대부분 예측 가능한 방식으로 일어난다.

  • 명시적변환:

    숫자형으로의 변환은 수학과 관련된 함수와 표현식에서 자동으로 일어난다.

    숫자형이 아닌 값에 나누기 /를 적용한 경우와 같이 말이죠.

    alert( "6" / "2" ); // 3, 문자열이 숫자형으로 자동변환된 후 연산이 수행됩니다.

    Number(value) 함수를 사용하면 주어진 값(value)을 숫자형으로 명시해서 변환할 수 있다.

    Number(value) 함수를 사용하면 주어진 값(value)을 숫자형으로 명시해서 변환할 수 있다.

    숫자형 값을 사용해 무언가를 하려고 하는데 그 값을 문자 기반 폼(form)을 통해 입력받는 경우엔, 이런 명시적 형 변환이 필수다.

한편, 숫자 이외의 글자가 들어가 있는 문자열을 숫자형으로 변환하려고 하면, 그 결과는 NaN이 된다.

let age = Number("임의의 문자열 123");

alert(age); // NaN, 형 변환이 실패합니다
profile
매일매일 성장할 수 있도록!

0개의 댓글