ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScriptの6つのデータ型と注意点_JavaScriptのスキルについて簡単に解説

JavaScriptの6つのデータ型と注意点_JavaScriptのスキルについて簡単に解説

WBOY
WBOYオリジナル
2016-05-16 17:07:551150ブラウズ

js の 6 つの一般的なデータ型: String 型、Null 型、Number 型、Boolean 型、および Object 型。

1. typeof

に関する注意事項

データ型に関して言えば、演算子 typeof について言及することは避けられません。注:

1. Typeof はメソッドではなく演算子です。ただし、オブジェクトのデータ型を取得するには typeof() を使用することがよくあります。

2. null の typeof は object (null は空のオブジェクト参照であるため)、関数の typeof は function

コードをコピーします コードは次のとおりです。

alert(typeof null); //Return object
functionデモ(){
alert('demo');
}
alert(typeofdemo); //return function

2. 各種データ型のオブジェクト変数の初期値を設定する

最初に Object 型のオブジェクト変数に何を割り当てるか分からない場合は、var Demon={} を使用しないでください。

コードをコピー コードは次のとおりです:

var d2=null;
d2 ={' キー':"クソ"};

var d3='';//String default
var d4=0; //Number 型の初期値は 0 に設定されます
var d5=null; //初期のデフォルト値が設定されますオブジェクトタイプの場合

3. unfineed と null の違いと注意点

1. 「==」を使用して比較すると、比較は値であるため、それらは等しくなります

2. それらを区別するには 2 つの方法があります (その中心はデータ型を比較す​​ることです)

1) typeof を使用して区別します

2) 一致する "===" を使用します: 比較されるのは値とデータ型であり、それらがすべて同じである場合にのみ true が返されます

コードをコピーします コードは次のとおりです。 >alert(typeof unknown == typeof null); //false
alert(unknown === null); //true




4. Boolean に関する注意点

1. true と 1 の比較、および false と 0 の比較は同じです (これは「== 比較」です)。これは、データ型変換が内部で実装され、true が 1 に変換されるためです。 js 内部 データ型の自動変換が多数あり、誰もが注意を払う必要があります。さらに多くのことについては後で説明します。ただし、データ型が等しくないため、「===」を使用することは等しくありません。 2. Boolean への変換を表示するには、Boolean() メソッドを使用します。注意する必要があるのは、さまざまなデータ型、いつ true に変換されるか、いつ false に変換されるかです。

1) 文字列型。空の文字列でない限り、true に変換されます

2) 数値型、0 以外であれば、負の数値でも true に変換されます

3) オブジェクト型は、null 型でない限り true に変換されます

4) 未定義の型は false に変換されます

私はデモンストレーションはしませんので、ご自身で試してみてください。

3. (***) if() ステートメント内の () はブール関数

を呼び出します。

5. 数値型に関する注意事項

1. Float 型は正確な計算を実行できません

コードをコピー

コードは次のとおりです:alert(0.1 0.2);//Return 0.300000000000000004
2.科学表記法計算をサポートします

3. NaN(非数)
1) var d=0/0; 注: js ではエラーは報告されませんが、NaN

が返されます。

2) Number.NaN を通じて取得できます

3) NaN と任意のオブジェクト間の演算は NaN を返します

4) isNaN() は NaN かどうかを判断します

コードをコピー

コードは次のとおりです:

alert(isNaN(NaN));//true
alert(isNaN(12));//false
alert(isNaN('123'));//false: ため文字列型の数値は自動的に数値に変換できます
alert(isNaN('lew'));//true
alert(isNaN(false));//(*)false: bool 値は変換できるため数値に変換され、true は 1 に変化し、false は 0 に変化します

5) isNaN() の内部実行原理: オブジェクトにも同じことが当てはまります。実装原理: 首相はオブジェクトの valueOf() メソッドを呼び出し、数値に変換できる場合は直接判定し、数値に変換できない場合は再度 toString() メソッドを呼び出し、戻り値をテストします。 。

valueOf() は内部で toObject() メソッドを呼び出します。2 つのメソッドの内部実行原理は次のとおりです。

JavaScriptの6つのデータ型と注意点_JavaScriptのスキルについて簡単に解説

コードをコピー コードは次のとおりです:
var box={
//ボックス オブジェクトの toString() メソッド
toString:function(){
toString() メソッド (ボックス);//123 内部的には、alert() は最初にオブジェクトの valueOf() を呼び出し、次に toString() メソッドを呼び出します。



6) 他のデータ型を数値型に変換します

3 つの関数が含まれています: Number(): すべてのデータ型を変換できます; parseInt() と parseFloat() は文字列のみを変換します。

コードをコピー

コードは次のとおりです:alert(Number('123')) ;// 123alert(Number('0234'));//234alert(Number(true));//1
alert(Number(null));//(** )0

//上記を除いて、その他はすべて NaN
alert(Number(unknown))//NaN

を返します

Number() の内部実装原則: isNaN() と同様に、valueOf() が最初に呼び出され、次に toString() が呼び出されます。 。したがって、パフォーマンスは比較的悪いと想像できます。 。したがって、変換されるオブジェクトが文字列である限り、内部で型を判断する必要がないため、parseInt() または parseFloat() を呼び出します。

parseInt() と parseFloat() 呼び出しの注意: 数値である最初の文字から始まり、数値である最初の文字の前の数値で終わると、文字列のこの部分は数値に変換されます

コードをコピーします

コードは次のとおりです:alert(parseInt('123leb')) ;// 123alert(parseInt('123leb345'));//123alert(parseInt('len234'));//NaN


parseInt()のパラメータがfloat型の場合、数値の整数部分のみが取得されます

コードをコピー

コードは次のとおりです。alert(parseInt(56.12));/ /56

6. 文字列型
1) (*重要*) ECMAScript では、文字列は不変です。文字列は作成後に変更されません。

値が割り当てられている文字列変数を変更するには、まず変数内の文字列を破棄し、次に新しい値を含む文字列を変数に入力します。

コードをコピー

コードは次のとおりです:var d='hello';d= d 'shit';//実行プロセス: まず 'hello' に値を代入し、次に d の文字列をクリアし、文字列 'hello' と 'shit' を連結してから、d 変数に値を代入します。 (そのため、文字列の値は作成後に変更されません)

2) toString()メソッドは他のデータ型をString型に変換します。ただし、null または未定義を操作すると、エラーが報告されます。

3) ただし、String() メソッドも toString() の効果を実現できますが、null および unknown に対して動作する可能性があります。
内部原則: 最初に toString() を呼び出し、文字列に変換できれば結果を直接返します。いいえ、null か未定義かを判断し、'null' または 'unknown' を返します

要約: 変数を null または未定義にすることができないことがわかっている場合は、String() よりもパフォーマンスの高い toString() を使用してください。String() は内部で判断する必要があるため、パフォーマンスが低下します。

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