ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScriptの特殊なデータ型の詳しい説明

JavaScriptの特殊なデータ型の詳しい説明

小云云
小云云オリジナル
2017-12-18 09:33:142376ブラウズ

JavaScript には、文字列、数値、ブール値、未定義、null、オブジェクトを含む 6 つの主要なデータ型があります。この記事では、JavaScript の特殊なデータ型について説明します。必要な方は参考にしていただければ幸いです。

1. JS の特殊な型: NaN

NaN は数値ではなく、数値ではありません。では、NaN とは正確には何でしょうか? JS では、整数と浮動小数点数は総称して数値型と呼ばれます。さらに、数値型には、正確な数値型ではなく、数値型の状態であるかどうかを示すために使用される、非常に特殊な値もあります。値 (つまり、NaN はそれ自体と等しくありません)。

では、NaN 値は通常どのような状況で現れるのでしょうか?

一般に 2 つの状況があります:

(1) 式にマイナス記号 (-)、乗算記号 (*)、除算記号 (/) などの演算子がある場合、JS エンジンは演算の前に演算を変換しようとします。演算子の両側の変数は数値型に変換されます (変換に Number(x) を使用します)。プラス (+) 演算子は両側の変数を変換しません。これは、JS式の実行順序が演算子の優先順位に従って左から右になるため、プラス記号(+)の両側の変数が数値型の場合、数値の加算演算が実行されます。変数が文字列の場合は、次のように両側が文字列として追加されます: 5+4+"6"="96"

(2) parseInt、parseFloat、または Number を直接使用する場合数値以外の値を数値に変換すると、式は 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 と null という 2 つの特殊な型があります。

unknown は JavaScript の 6 つのデータ型のうちの 1 つであり、この型は値を 1 つだけ持ちます。 unknown は「未定義」を意味します。つまり、変数が var を使用して宣言されているが、値が割り当てられていない場合、その変数の値は未定義です。これには 2 つの理由があります:

(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 との違いは、unknown も変数の状態を表しますが、この状態値は確実に一意であることです。変数が宣言されているが宣言されていない場合 値を代入するとき、そのステータスは未定義であるため、次の式が当てはまります:

var b;
b == undefined; //true

未定義を理解すると、null 型も null のみを理解するのがはるかに簡単になります。 1 つの値: null。有効なデータが含まれていません。ここでの null は、空の値または空のオブジェクトを意味します。より正確には、null に割り当てられた変数には有効な値、文字列、ブール値、配列、オブジェクトなどが格納されていません。これは、変数に null を代入することで解決できます。変数の。 null の理由は 1 つだけです。それは、明示的に null を変数に割り当てることです。

var p = null ;
console.log(p); //null
typeof p ; // "object"
typeof null ; // "object"

NaN と比較してみましょう。Null も特定の一意の状態値です。変数に null の値が割り当てられている場合、それは null と等しいので、次の式も真です。

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

関連する推奨事項:


PHP独習 no00010 特殊なデータ型 null 値

JS 開発における基本的なデータ型の詳細な紹介

ベーシックについてjsのデータ型と参照データ型の違い

以上がJavaScriptの特殊なデータ型の詳しい説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。