JavaScript의 특수 데이터 유형은 무엇입니까?

亚连
풀어 주다: 2018-06-20 15:43:02
원래의
2709명이 탐색했습니다.

JavaScript에는 문자열, 숫자, 부울, 정의되지 않음, null 및 개체를 포함한 6가지 주요 데이터 유형이 있습니다. 다음은 이 글을 통해 자바스크립트의 특별한 데이터 유형을 소개한 것입니다. 필요하신 분들은 참고하시면 됩니다

자바스크립트에는 문자열, 숫자, 불리언, 정의되지 않음, 널, 객체 등 6가지 주요 데이터 유형이 있습니다

, JS의 특수 유형: NaN

NaN은 숫자가 아닙니다. NaN이 정확히 무엇인가요? JS에서는 정수형과 부동소수점 숫자를 합쳐서 숫자형이라고 부른다. 또한 숫자형에도 정확한 값이 아닌 숫자형의 상태인지를 나타내는 데 사용되는 아주 특별한 값, 즉 NaN이 있다. 값입니다(따라서 NaN은 그 자체와 동일하지 않습니다).

그럼, NaN 값은 일반적으로 어떤 상황에서 나타나는 걸까요?

일반적으로 두 가지 상황이 있습니다.

(1) 식에 빼기 기호(-), 곱하기 기호(*) 또는 나누기 기호(/)와 같은 연산자가 있는 경우 JS 엔진은 이전에 연산 변환을 시도합니다. 계산 연산자의 양쪽 변수는 숫자 유형으로 변환됩니다(변환에 실패하면 표현식은 NaN을 반환합니다. 더하기(+) 연산자는 양쪽 변수를 변환하지 않습니다. 이는 JS 표현식의 실행 순서가 연산자의 우선 순위에 따라 왼쪽에서 오른쪽으로 이루어지기 때문에 더하기 기호(+) 양쪽의 변수가 숫자 유형인 경우 숫자 추가 연산이 수행됩니다. . 변수가 문자열이면 양쪽이 다음과 같이 문자열로 추가됩니다. 숫자가 아닌 값을 숫자로 변환하면 표현식은 NaN을 반환합니다

"abc" - 3  // NaN
parseInt( "abc" ) // NaN
parseFloat( "abc" ) //NaN
Number( "abc" )  //NaN
로그인 후 복사

숫자 + 문자 값의 경우 변환 결과가 달라집니다.

Number( "123abc" ); //NaN
parseInt( "123abc" ); //123
parseInt( "123abc45" ); //123
parseFloat( "123.45abc" ); //123.45
로그인 후 복사

이는 Number가 값의 일부가 아닌 전체 값을 변환하기 때문입니다. ParseInt 및 ParseFloat는 첫 번째 유효하지 않은 문자만 이전 문자열로 변환합니다.

따라서 문자열을 Number로 성공적으로 변환할 수 없는 경우,parseInt,parseFloat,NaN이 반환되는데, 이는 문자열을 숫자형으로 인식할 수 없음을 나타내는 예외 상태이며 정확한 값은 아닙니다.

그래서 NaN != NaN 입니다. 정확한 값이 아니라 예외이기 때문입니다.

또한 NaN과 관련된 함수, 즉 isNaN()이 있는데, 그 기능은 Number()로 문자열이 성공적으로 변환되는지 확인하는 것, 즉 문자열 전체를 강제로 변환하는 것입니다.

isNaN( "123" )  //false 能转换
isNaN( "abc" )  //true 不能转换
isNaN( "123abc" )  //true 部分可转换,但整体不能转换
isNaN( "123.45abc" ) //true 部分可转换,但整体不能转换
로그인 후 복사

2. JS에는 두 가지 특별한 유형이 있습니다: undeinfed와 nullundefine은 JavaScript의 6가지 데이터 유형 중 하나입니다. 이 유형에는 정의되지 않은 값이 하나만 있습니다. 정의되지 않음은 '정의되지 않음'을 의미합니다. 즉, var를 사용하여 변수를 선언했지만 값이 할당되지 않은 경우 변수 값이 정의되지 않은 경우에는 두 가지 이유가 있습니다:

(1) 존재하지 않는 속성 또는 메서드에 액세스합니다. 객체에서

(2) 변수가 선언되었지만 값이 할당되지 않았습니다

var v1,obj = {};
console.log(v1); //undefined
console.log(obj. get ); //undefined
typeof v1; // "undefined"
typeof v2; // "undefined"
typeof obj. get ; // "undefine"
typeof obj ; // "object"
로그인 후 복사

NaN과의 차이점은 정의되지 않음도 변수의 상태를 나타내지만 이 상태 값은 변수가 선언될 때 고유하다는 것입니다. 그러나 값이 할당되지 않은 경우 상태는 정의되지 않았으므로 다음 표현식은 true입니다.

var b;
b == undefined; //true
로그인 후 복사

정의되지 않음을 이해하고 나면 null 유형에도 null 값이 하나만 있다는 것을 이해하는 것이 훨씬 쉬울 것입니다. 변수에 유효한 데이터가 포함되어 있지 않습니다. 여기서 Null은 빈 값 또는 빈 개체를 의미합니다. 더 정확하게는 null에 할당된 변수에는 유효한 값, 문자열, 불리언, 배열 또는 개체 등이 저장되지 않습니다. 변수에 null을 할당하면 해결됩니다. 변수의. null이 발생하는 이유는 단 하나입니다. 즉, 변수에 null을 명시적으로 할당하는 것입니다.

var p = null ;
console.log(p); //null
typeof p ; // "object"
typeof null ; // "object"
로그인 후 복사

NaN과 비교해 보겠습니다. Null도 특정하고 고유한 상태 값입니다. 변수에 null 값이 할당되면 null과 같으므로 다음 표현식도 true입니다.

var obj = null ;
obj == null ; //true
로그인 후 복사

또한 다음과 같습니다.

var  v1 = null;
var v2;
console.log(v1 + 1 ); // 1
console.log(v2 + 1 ); //NaN
var i = i +1;
var j = i+ 1;
console.log(i); // NaN
console.log(j ); //NaN
console.log(i == j ); //false
로그인 후 복사
위 내용은 모두를 위해 제가 정리한 내용입니다. 앞으로 모든 사람에게 도움이 되기를 바랍니다.

관련 기사:

node.js에서 fs.rename을 사용하여 강제 이름 바꾸기를 구현하는 방법

npm을 사용하여 vue 프로젝트 만들기(자세한 튜토리얼)

fs.renameSync를 호출할 때 오류가 발생합니다. Node.js 질문이 있나요?

VSCode

에서 React Native 개발 환경을 구성하는 방법

위 내용은 JavaScript의 특수 데이터 유형은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿