JavaScript 데이터 형식 에 대한 주의 사항

7200 단어 자바 script
자 바스 크 립 트 데이터 형식
ECMAscript 에는 5 가지 간단 한 데이터 형식 이 있 고 기본 데이터 형식 이 라 고도 불 린 다. Undefined, Null, Boolean, Number 와 String.또 하나의 복잡 한 데이터 형식 인 Object 가 있다.
정의 되 지 않 은 유형
var 성명 변 수 를 사용 하지만 초기 화 되 지 않 았 을 때 이 변수의 값 은 undefined 입 니 다.예:
var number;
document.write(number); //undefined

성명 변수 가 없 으 면 다음 과 같은 오류 가 발생 할 수 있 습 니 다.예:
document.write(str); //  

그러나 typeof 로 이 를 집행 할 때 성명 이 있 든 없 든 undefined 값 을 되 돌려 줍 니 다.예:
var num;
document.write(typeof num); //undefined
document.write(typeof str); //undefined

Null 형식typeof null 을 검사 할 때 "object" 를 되 돌려 줍 니 다.예:
var num = null;
document.write(typeof num); //object

실제로 undefined 값 은 null 값 에서 파생 되 기 때문에 그들 은 똑 같이 true 로 돌아 갑 니 다.예:
alert(null == undefined); //true

여기 서 주의해 야 할 것 은 대상 을 저장 하려 는 변수 가 대상 을 진정 으로 저장 하지 않 았 다 면 이 변 수 를 null 값 으로 명확 하 게 저장 해 야 한 다 는 것 이다. 이 는 null 과 undefined 를 구분 하 는 데 도움 이 된다.예:

var num1 = null;
var num2;
document.write(typeof num1 + " " + typeof num2); //object undefined

부 울 타 입
하나의 값 을 대응 하 는 Boolean 값 으로 바 꾸 려 면 전환 함수 Boolean() 를 사용 할 수 있 습 니 다.예:
var str = "helloworld";
document.write(Boolean(str)); //true

라 는 책의 3.4.4 에 서 는 각종 데이터 형식 과 이에 대응 하 는 변환 규칙 표를 제시 했다.대략 다음 과 같은 몇 가지 가 있다.
  • 데이터 형식 이 String 일 때 빈 문자열 이 아 닌 모든 문자열 이 true 로 변 환 됩 니 다.
  • 데이터 형식 이 Number 일 경우 0 과 NaN 을 제외 하고 모두 true 로 변 환 됩 니 다.
  • 데이터 형식 이 Object 일 때 null 을 제외 하고 모두 true 로 변 환 됩 니 다.
  • 데이터 형식 이 Undefined 일 때 n / a 는 true 로 변환 되 고 undefined 는 false 로 변 환 됩 니 다.

  • 여기 서 주의해 야 할 것 은 if 문 구 는 응답 을 자동 으로 실행 하 는 Boolean 변환 을 조건 으로 자주 사용 합 니 다.예:
    var str = "helloworld";
    if (str){
        document.write("hellothere");
    } //hellothere
    

    Number 형식
    10 진법 으로 표시 할 수 있 는 것 을 제외 하고 정 수 는 8 진법 이나 16 진법 의 글자 액면가 로 표시 할 수 있다. 그 중에서 8 진법 의 첫 번 째 단 계 는 0 이 어야 하고 그 다음 에 8 진법 의 숫자 서열 (0 ~ 7) 이 어야 한다.예:
    var num1 = 070; //    56
    var num2 = 032; //    32
    var num3 = 079; //      (>7)
    var num4 = 09; //      (>7)
    

    16 진수 액면가 의 앞 두 자 리 는 반드시 0 x 이 고 뒤 에는 16 진수 (0 ~ 9 및 A ~ F) 가 있어 야 합 니 다.예:
    var num1 = 0xA; //     10
    var num1 = 0xa; //       10(        )
    

    부동 소수점 수치
    여기 서 주의해 야 할 것 은 영원히 특정한 부동 소수점 수 치 를 비교 해 서 는 안 된다 는 것 이다.예:
    var a = 0.1;
    var b = 0.2;
    if (a + b == 0.3){
        document.write("you are right")
    } //  0.1   0.2      0.30000000000000004
    

    수치 범위
    ECMAScript 가 표시 할 수 있 는 최대 와 최소 수 치 는 Number.MAX_VALUENumber.MIN_VALUE 에 저 장 됩 니 다.수치 가 가난 한 지 확인 하려 면 isFinite() 함 수 를 사용 할 수 있 습 니 다.예:
    document.write(isFinite(Number.MAX_VALUE + Number.MAX_VALUE)); //false
    

    NaN
    0 나 누 기 0 은 NaN 으로, 정 수 를 0 으로 나 누 면 인 피 니 티 로, 복 수 는 인 피 니 티 로 돌아간다.그 다음으로 NaN 은 그 자 체 를 포함 하여 그 어떠한 수치 와 도 같 지 않다.또한 함수 isNaN() 는 이 매개 변수 가 '수치 가 아 닙 니 다' 인지 확인 하 는 데 도움 을 줄 수 있 습 니 다.예:
    document.write(isNaN("a")); //true;
    document.write(isNaN("324")); //false;
    document.write(isNaN(true)); //false;
    document.write(isNaN(false)); //false;
    document.write(isNaN(NaN)); //true;
    

    수치 변환
    세 개의 함수 가 비 수 치 를 수치 로 바 꿀 수 있다. Number(), parseInt(), parseFloat().Number() 의 전환 규칙 은 다음 과 같다.
  • 불 리 언 값 이면 트 루 와 false 는 1 과 0 으로 바뀐다.
  • 숫자 값 이 라면 변 하지 않 는 다.
  • null 값 이면 0 으로 변환 합 니 다.
  • undefined 라면 NaN 으로 돌아간다.
  • 문자열 이 라면 다음 규칙 을 따 릅 니 다.
  • 숫자 만 있 으 면 10 진수 로 변환 합 니 다.
  • 부동 소수점 형식 이 라면 해당 하 는 부동 소수점 수치 로 변환 합 니 다.선도 0 도 무시 할 것 이다.
  • 16 진수 형식 이면 10 진수 로 바뀐다.
  • 문자열 이 비어 있 으 면 0 으로 변 환 됩 니 다.
  • 기타 상황 은 NaN 으로 전환 된다.


  • 구체 적 으로 아래 의 예 를 보면:
    document.write(Number(true)); //1
    document.write(Number(false)); //0
    document.write(Number("789")); //789
    document.write(Number(null)); //0
    document.write(Number(undefined)); //NaN
    document.write(Number("02.0942")); //2.0942
    document.write(Number(0xa)); //10
    document.write(Number("")); //0
    document.write(Number("fdsa")); //NaN
    
    parseInt() 의 전환 규칙 은 다음 과 같다.
  • 첫 번 째 문자 가 숫자 문자 나 기호 가 아니라면 parseInt() NaN 으로 돌아 갑 니 다.
  • 빈 문자열 을 parseInt() 로 변환 하면 NaN 으로 돌아 갑 니 다.
  • 첫 번 째 문자 가 숫자 문자 라면 두 번 째 문 자 를 계속 해석 하고 비 숫자 문 자 를 만 날 때 까지 합 니 다.
  • 다음은 구체 적 인 예 이다.
    document.write(parseInt("fds")); //NaN
    document.write(parseInt("")); //NaN
    document.write(parseInt("1111112abc")); //1111112
    document.write(parseInt("-1111112abc")); //-1111112
    document.write(parseInt("+1111112abc")); //-1111112
    document.write(parseInt("0xa")); //10
    document.write(parseInt("0022.00009")); //22
    document.write(parseInt("070")); //ECMAScript 3   56(   ), ECMAScript 5   70(   )
    

    또한 주의해 야 할 것 은 ECMAScript 5 는 8 진법 값 을 해석 하 는 능력 이 없 기 때문에 이 문 제 를 없 애기 위해 이 함수 에 두 번 째 인 자 를 제공 할 수 있 습 니 다. 변환 할 때 사용 하 는 기수 (몇 진법) 는 구체 적 으로 다음 과 같 습 니 다.
    document.write(parseInt("070",10)); //70
    document.write(parseInt("070",8)); //56
    document.write(parseInt("070",16)); //112
    

    대부분의 경우 기본적으로 10 진법 으로 설정 하 는 것 이 좋 습 니 다.parseFloat() 의 전환 규칙 은 다음 과 같다.
  • parseInt() 과 유사 하 며, 문자열 의 첫 번 째 소수점 은 유효 하 며, 두 번 째 소수점 부터 두 번 째 소수점 을 포함 하 는 것 은 유효 하지 않 습 니 다.
  • 그 는 16 진법 수 치 를 해석 할 수 없다!!!
  • 그 는 십 진법 수치 만 해석 할 수 있다!!!
  • 그 는 두 번 째 기수 로 진법 의 용법 을 지정 하지 않 았 다.

  • 다음은 구체 적 인 예 이다.
    document.write(parseFloat("421")); //421
    document.write(parseFloat("0421.32.1")); //421.32
    document.write(parseFloat("0xaafd")); //0
    document.write(parseFloat("070")); //70
    document.write(parseFloat("070abc")); //70
    document.write(parseFloat("")); //NaN
    document.write(parseFloat("abc")); //NaN
    

    문자열 형식
    하나의 값 을 문자열 로 바 꾸 려 면 두 가지 방법 이 있다.첫 번 째 는 거의 모든 값 이 있 는 toString() 방법 을 사용 하 는 것 이다.다음 과 같다.
    document.write((533).toString(10)); //"533"
    document.write((0xa).toString(10)); //"10"
    document.write((0xa).toString(2)); //"1010"
    document.write((true).toString(10)); //"true"
    document.write((false).toString(10)); //"false"
    

    또 주의해 야 할 것 은 null 과 undefined 가 바 꿀 수 없다 는 것 이다.
    
    document.write((null).toString(10)); //
    document.write((undefined).toString(10)); //
    

    변환 해 야 할 수치 가 null 이나 undefined 인지 모 르 면 전환 함수 String() 를 사용 해 야 합 니 다. null 이 라면 "null" 을 되 돌려 줍 니 다. undefined 라면 "undefined" 를 되 돌려 줍 니 다.다음 과 같다.
    document.write(String(null)); //"null"
    document.write(String(undefined)); //"undefined"
    

    개체 유형
    그리고 Object 타 입 을 자세히 소개 해 드 리 겠 습 니 다.

    좋은 웹페이지 즐겨찾기