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