ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScript の特殊なデータ型とは何ですか?

JavaScript の特殊なデータ型とは何ですか?

亚连
亚连オリジナル
2018-06-20 15:43:022710ブラウズ

JavaScript には、文字列、数値、ブール値、未定義、null、オブジェクトを含む 6 つの主要なデータ型があります。以下は、この記事を通じて JavaScript の特殊なデータ型を紹介したものです。必要な方は参照してください

JavaScript には、文字列、数値、ブール値、未定義、null、オブジェクトを含む 6 つの主要なデータ型があります

、JS の特殊な型: NaN

NaN は Not a Number、数字ではありません。では、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 との違いは、未定義も変数の状態を表しますが、この状態値は一意であること、つまり変数が宣言されたときの値であることです値が割り当てられていない場合、状態は未定義であるため、次の式が true になります:

var b;
b == undefined; //true

未定義を理解すると、null 型の値も 1 つだけ理解できるようになります。null は、値が 1 つだけであることを意味します。変数に有効なデータが含まれていません。ここでの 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

以上は皆さんのためにまとめたものです。今後皆さんのお役に立てれば幸いです。

関連記事:

node.jsでfs.renameを使用して強制的な名前変更を実装する方法

npmを使用してvueプロジェクトを作成する(詳細なチュートリアル)

Nodeでfs.renameSyncを呼び出すとエラーが発生する.jsの質問ですか?

VSCodeでReact Native開発環境を構成する方法

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

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