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 질문이 있나요?
에서 React Native 개발 환경을 구성하는 방법
위 내용은 JavaScript의 특수 데이터 유형은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!