javascript 기본 데이터 형식 및 변환
ECMAScript 는 느슨 한 형태 이기 때문에 변수의 데이터 형식 을 검사 하 는 수단 이 필요 합 니 다.type of 는 바로 이러한 기능 을 가 진 조작 자 입 니 다.type:of 로 변 수 를 검사 하면 다음 문자열 을 되 돌려 줄 수 있 습 니 다.
"undefined"
변수 가 정의 되 지 않 음
"boolean"
변 수 는 불 값 입 니 다.
"string"
변 수 는 문자열
"number"
변 수 는 수치 입 니 다.
"object"
변 수 는 대상 또는 null 입 니 다.
"function"
변 수 는 함수
기술적 인 측면 에서 볼 때 함 수 는 ECMAScript 에서 대상 이지 데이터 형식 이 아니다.그러나 함수 에는 특수 한 속성 이 있 기 때문에 type of 를 통 해 함수 와 다른 대상 을 구분 하 는 것 이 필요 합 니 다.
Undefined 형식 은 하나의 값 만 있 습 니 다.바로 특수 한 undefined 입 니 다.var 성명 변 수 를 사용 하지만 초기 화 되 지 않 았 을 때 이 변수의 값 은 undefined 입 니 다.예 를 들 어:
var a;
alert(a == undefined); //true
그러나 undefined 값 을 포함 하 는 변 수 는 정의 되 지 않 은 변수 와 다 릅 니 다.예 를 들 어:
var a; // undefined
//
// var b
alert(a); // "undefined"
alert(b); //
그러나 설명 되 지 않 거나 초기 화 되 지 않 은 변수 에 대해 type:of 를 사용 하면 undefined 로 돌아 갑 니 다.예 를 들 어:
var a;
// var b;
alert(typeof a); // "undefined"
alert(typeof b); // "undefined"
Null 형식 도 하나의 값 만 있 습 니 다.바로 null 입 니 다.논리 적 인 측면 에서 볼 때 null 값 은 빈 지침 을 표시 하기 때문에 type:of 로 null 값 을 감지 하면"object"로 돌아 갑 니 다.예 를 들 어:
var car = null;
alert(typeof car); // "object"
따라서 저장 대상 에 변 수 를 정의 하려 면 이 변 수 를 null 로 초기 화 하 는 것 이 좋 습 니 다.실제로 undefined 값 은 null 값 을 계승 하기 때문에 이들 의 동일성 을 판단 하면 true 로 돌아 갑 니 다.alert(null == undefined); // true
null 과 undefined 는 이러한 관계 가 있 지만 그 용 도 는 완전히 다 릅 니 다.언제든지 변수의 값 을 undefined 로 표시 할 필요 가 없 기 때 문 입 니 다.그러나 저장 되 지 않 은 대상 변 수 를 정의 할 때 변 수 를 null 로 설정 해 야 합 니 다.그러면 null 을 빈 대상 으로 하 는 지침 을 나 타 낼 수 있 을 뿐만 아니 라그리고 null 과 undefined 를 잘 구분 할 수 있 습 니 다.Boolean 형식 은 두 글자 의 액면가 가 있 습 니 다.true 와 false 입 니 다.그러나 ECMAScript 의 모든 종류의 값 은 Boolean()함수 에서 Boolean 형식의 값 으로 변환 할 수 있 습 니 다.아래 표 는 각종 데이터 형식 에 대응 하 는 변환 규칙 을 보 여 줍 니 다.
데이터 형식
true 값 으로 변환
false 값 으로 변환
Boolean
true
false
String
비어 있 지 않 은 문자열
빈 문자열
Number
0 이 아 닌 숫자 값
0 과 NaN
Object
어떠한 대상 도
null
Undefined
/
undefined
Number 유형 은 정수 와 부동 소수점 으로 나 뉘 는데 정 수 는 10 진법,8 진법 또는 16 진법 으로 표시 할 수 있 습 니 다.예 를 들 어:
var num1 = 22; //
var num2 = 070; // 56
var num3 = 079; // , 79
var num4 = 08; // , 8
var num5 = 0xA; // 10
var num6 = 0x1f; // 31
그러나 8 진 자 면 량 은 엄격 한 모드 에서 무효 이 며,산수 계산 을 할 때 모든 수 치 는 최종 적 으로 10 진 수치 로 변 환 됩 니 다.부동 소수점 수 치 는 소수점 을 포함해 야 합 니 다.예 를 들 어:
var floatNum1 = 1.1;
var floatNum2 = .1; // ,
var floatNum3 = 1.; // , 1
var floatNum4 = 10.0; // , 10
부동 소수점 수치의 최고 정 도 는 17 비트 소수 이지 만 계산 을 할 때 정확 도 는 정수 보다 훨씬 못 하 다.예 를 들 어:
var a = 0.1;
var b = 0.2;
var c = a + b; //c 0.30000000000000004
NaN,즉 비 수치 로 특수 한 Number 값 입 니 다.NaN 은 두 가지 특징 이 있 습 니 다.NaN 과 작업 한 결 과 는 모두 NaN 으로 돌아 갑 니 다.NaN 은 그 어떠한 값 과 도 같 지 않 습 니 다.NaN 을 포함 합 니 다.isNaN()함 수 를 사용 하면 값 이 NaN 인지 아 닌 지 를 판단 할 수 있 습 니 다.isNaN()은 매개 변 수 를 받 았 을 때 이 값 을 수치 로 변환 하려 고 시도 합 니 다.수치 로 변환 할 수 없 는 값 은 true 로 돌아 갑 니 다.예 를 들 어:
alert(isNaN(NaN)); //true
alert(isNaN(10)); //false(10 )
alert(isNaN("10")); //false( 10)
alert(isNaN("abc")); //true( )
alert(isNaN(true)); //false( 1)
var obj = {name:"zhangsan", age:"1"};
alert(isNaN(obj)); //true
isNaN()도 대상 을 변환 할 수 있 습 니 다.대상 이 isNaN()을 호출 할 때 대상 의 value Of()방법 을 먼저 호출 한 다음 에 이 방법의 반환 값 을 수치 로 변환 할 수 있 는 지 확인 합 니 다.그렇지 않 으 면 이 반환 값 으로 toString()방법 을 호출 하고 반환 값 을 테스트 합 니 다.비수 치 를 수치 로 변환 하 는 방법 은 세 가지 가 있 는데 그것 이 바로 Number(),parseInt(),parseFloat()이다.Number()는 모든 데이터 형식의 값 을 변환 할 수 있 으 며,parseInt()과 parseFloat()는 문자열 만 변환 할 수 있 습 니 다.
Number()함수 에는 다음 과 같은 변환 규칙 이 있 습 니 다.
1.Boolean 값 이 라면 true 는 1 로,false 는 0 으로 변환 합 니 다.
var num = Number(true); //1
var num2 = Number(false); //0
2.Number 값 이 라면 들 어 오 는 값 과 같 습 니 다.var num = Number(1); //1
3.null 이면 0 으로 변환 합 니 다.var num = Number(null); //0
4.undefined 라면 NaN 으로 전환 합 니 다.var num = Number(undefined); //NaN
5.String 값 이 라면 여러 가지 상황 으로 나 누고 빈 문자열 이 라면 0 으로 변환 합 니 다.순수한 숫자의 문자열 이 라면 해당 하 는 수치 로 변환 합 니 다.문자열 이 숫자 이 고'.'이 포함 되 어 있 으 면 해당 하 는 부동 소수점 수치 로 변환 합 니 다(문자열 의 맨 앞 이 0 이면 무시 합 니 다).문자열 이 유효한 16 진수 형식 이 라면 해당 하 는 10 진수 로 변환 합 니 다.위 형식 이외 의 문 자 를 포함 하 는 문자열 이 있 으 면 NaN 으로 변환 합 니 다.문자열 이 대상 이 라면 대상 의 value Of()방법 을 먼저 호출 한 다음 이 방법의 반환 값 을 수치 로 변환 할 수 있 는 지 확인 하고,결과 가 NaN 이면 toString()방법 을 호출 하여 반환 값 을 테스트 합 니 다.
var num = Number("Hello World"); //NaN
var num2 = Number(""); //0
var num3 = Number("01"); //1
var num4 = Number("01.1"); //1.1
var obj = {name:"zhangsan", age:"1"};
alert(Number(obj)); //NaN
Number()는 문자열 을 바 꾸 는 것 이 복잡 하기 때문에 문자열 을 바 꾸 는 데 parseInt()과 parseFloat()를 자주 사용 합 니 다.이 두 함 수 는 문자열 을 변환 할 때 이 문자열 이 수치 모드 에 맞 는 지 확인 합 니 다.첫 번 째 빈 칸 이 아 닌 문자 부터 해석 합 니 다.첫 번 째 문자 가 수치 나 마이너스 가 아니라면 NaN(빈 문자열 포함)을 되 돌려 줍 니 다.첫 번 째 문자 가 문자열 이 라면 모든 문 자 를 해석 하거나 비 숫자 문 자 를 만 날 때 까지 뒤의 문 자 를 계속 해석 합 니 다.parseInt()은 각종 정수 형식(10 진법,8 진법,16 진법)을 식별 할 수 있 으 며,문자열 이'0x'로 시작 하고 뒤꿈치 숫자 문 자 를 따 르 면 16 진법 으로 해석 되 며,'0'으로 시작 하고 뒤꿈치 숫자 문 자 를 따 르 면 8 진법 으로 해석 된다(ECMAScript 5 는 8 진법 을 식별 하지 않 으 면 앞의 0 을 무시 하고 10 진법 으로 해석 된다).
var num = parseInt("123Hello"); //123
var num2 = parseInt(""); //NaN
var num3 = parseInt("0xA"); //10( )
var num4 = parseInt("22.3"); //22
var num5 = parseInt("070"); //56(ECMAScript3 ) 70(ECMAScript5 )
var num6 = parseInt("23"); //23( )
호환성 문 제 를 해결 하기 위해 parseInt()은 두 번 째 인 자 를 제공 하고 어떤 수치 로 해석 합 니까?
var num1 = parseInt("0xAF", 16); //175
var num2 = parseInt("AF", 16); //175, "0x"
var num3 = parseInt("10", 2); //2( )
var num3 = parseInt("10", 8); //8( )
var num3 = parseInt("10", 10); //10( )
var num3 = parseInt("10", 16); //16( )
parseFloat()는 첫 번 째 소수점 만 식별 하고 뒤의 소수점 은 무효 입 니 다.또한 parseFloat()는 10 진법 값 만 식별 하기 때문에 두 번 째 매개 변수 가 없 으 며 다른 형식 수 치 는 0 으로 분 석 됩 니 다.
var num = parseFloat("123Hello"); //123
var num = parseFloat("0xA"); //0
var num = parseFloat("12.1"); //12.1
var num = parseFloat("12.1.1"); //12.1
var num = parseFloat("023"); //23
var num = parseFloat("1.1e3"); //1100
String 형식 값 은 여러 개의 유 니 코드 문자 로 구 성 된 문자 시퀀스 로 구성 되 어 있 으 며,작은 따옴표(')나 작은 따옴표(')로 표시 할 수 있 지만,왼쪽 따옴표 가 일치 해 야 합 니 다.
var str1 = "abc";
var str2 = 'abc';<br>var str3 = "abc'; //
하나의 값 을 문자열 로 표시 하 는 방법 은 두 가지 가 있 습 니 다.toString()과 String(),수치,불 값,대상 과 문자열 은 모두 toString()방법 과 String()방법 이 있 습 니 다.undefined 와 null 은 String()방법 만 있 고 toString()의 인 자 는 변 환 된 진법 형식 입 니 다.
var num = 10;
alert(num.toString()); //"10"
alert(num.toString(2)); //"1010"
alert(num.toString(8)); //"12"
alert(num.toString(10)); //"10"
alert(num.toString(16)); //"A"
alert(true.toString()); //"true"
String(num); //"10"
String(true); //"true"
String(null); //"null"
var num1;
String(num1); //"undefined"
이상 은 본 고의 모든 내용 입 니 다.본 고의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 도움 이 되 기 를 바 랍 니 다.또한 저 희 를 많이 지지 해 주시 기 바 랍 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Thymeleaf 의 일반 양식 제출 과 AJAX 제출텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.