04-JavaScriptデータとデータタイプ
11328 ワード
JavaScriptデータタイプの概要はC言語と同じです.プログラマとして最も関心があるのはメモリの中の です.はC言語と同様に、プログラムが実行中に様々な一時データを生成し、データの演算と操作を容易にするために、JavaScriptもこれらのデータを分類し、豊富なデータタイプ を提供しています. JSには全部で6種類のデータがあります. String文字列(基本データタイプ) Number値(基本データタイプ) Booleanブール値(基本データタイプ) Null空き値(基本データタイプ) Udefined未定義(基本データタイプ) Objectオブジェクト(参照データタイプ) 注意点:はC言語よりもJavaScriptのほうが簡単です.データタイプもC言語ほど細かくはないです. JavaScriptには基本データタイプと参照データタイプだけがあります. データの種類はどうやって調べますか? はC言語と同様に、typeofオペレータを使用して、データの種類を確認するために使用できます. フォーマットを使用します.typeofデータ、例えばtypeof 123.typeof num typeofオペレータはチェックの結果を文字列で に返します. Stringは、文字列 を表すために使用される.文字列は、”または”総括 ”を使用する必要があります.と同じ引用符は入れ子できません.異なる引用符は入れ子できます. ダブルクォーテーションマークはダブルクォーテーションマークを入れてはいけません.シングルクォーテーションマークは を入れてはいけません.
変数に引用符を付けると、変数は定数 になります.とC言語は違います.C言語ではシングル引用符で囲まれているのは文字 です.であり、JavaScriptでは、シングルクォーテーションマークまたはダブルクォーテーションマークで囲まれている文字列 である.
Numberタイプ JSのすべての数値はNumberタイプ(整数と小数) です.メモリの制限のため、ECMAScriptは世界のすべての数値を保存できません. 最大値:Number.MAXUVALE 最小値:Number.MINUVALE 無限大:Infinityは、最大値を超えると に戻ります.無限小:-Infinityは、最小値を超えると に戻ります. NaN不法数字(Not A Number)は、JSにおいて数値を計算したときに戻りませんでした.NaN に戻ります.
Numberタイプ注意点 JSにおける整数の演算は、正確な結果を保証することができる. JSにおける浮動小数点の演算は、不正確な結果を得ることができる. 注意点: C言語での整数はintであり、小数はfloatまたはdouble である.、JavaScriptの中では整数でも小数でもNumber です.
Booleanブール値ブールタイプは、論理値タイプまたは真伪値タイプ とも呼ばれる.ブールタイプは、本物と偽の2つの値だけを取ることができます. Booleanタイプのワード値は2つしかないですが、ECMAScriptのすべてのタイプの値はこの2つのBoolean値と同等の値があります. 任意の非ゼロ値はtrueであり、正負無限大を含み、0とNaNだけがfalse である.任意の非空文字列はtrueです.空の文字列だけがfalse です.どのオブジェクトもtrueです.nullとundefinedだけがfalse です.
Udefinedは、変数の未割り当てを表しています.このタイプの値は一つしかないです.undefined です. undefinedはUnidefinedタイプの字面量です. 元のundefinedと10、abcは同じ定数 です.後者のUdefinedとNumberは、Booleanは同じデータタイプ です.注意したいのは、typeofが初期化されていない変数と宣言されていない変数に対してundefinedを返します. Nullタイプは、2番目に1つの値しかないデータタイプで、この特殊な値はnull です.意味からnullは空のオブジェクトを表しています.typeofチェックnullはObject に戻ります. undefined値は実際にnull値から派生しているので、undefinedとnullが等しいかどうかを比較すると、true に戻ります.
変換されたデータタイプのtoString()メソッドを呼び出します. nullとundefinedの2つの値はtoString()の方法がないので、彼らの方法を呼び出したら をエラーします.この方法は元の変数に影響を与えず、変換の結果を に返す.数値タイプのtoString()は、一つのパラメータを持って、対応する進数の値を出力することができます. String()関数の存在意義: .toString()がない値があります.このときはString()が使えます.例えば、undefinedとnull NumberとBooleanについては、実際に呼び出しのtoString()方法 である.は、nullおよびundefinedに対して、tostring()メソッドを呼び出すことなく、内部で新しい文字列 を生成する.任意のデータと+“”が一緒に接続されると文字列 に変換されます.内部実装原理は、String関数と同じ である.
変換されたデータをNumber()関数に入力します.文字列-->数字 純数字の文字列であれば、そのまま数字 に変換される.文字列に数字以外の内容がある場合、NaN に変換される.文字列が空の列または空の文字列である場合、0 に変換される.
ブール-->数字 trueを1 に変換します. falseは0 に回転します.
null-->数字-->0 undefined-->デジタル-->NaN 変換されたデータをパーrseInt()関数に入力します. Number()関数では、混合文字列が存在するかどうかにかかわらず、NaN に戻ります.は、パーrseInt()/parseFloat()を利用して文字列の有効整数 を抽出することができる. parseFloat()は第一個を解析します.第二個に出会います.または、非ディジタル終了です. の違いは前者が整数しか抽出できないことであり、後者は小数 を抽出することができる.パースInt()は文字列中の整数を抽出する. 無効数字 に遭遇するまで、最初の有効数字から開始する.第一位が有効数字でないと、何も抽出できないので、NaN に戻ります.最初のパラメータは変換される文字列であり、第二のパラメータは変換される進数 である.
パーrseFloatは文字列中の小数点を抽出する. は第一個を解析します.第二個に遭遇するか、或いは非数値終了 第一位が有効数字でないと、何も抽出できません. は第二のパラメータをサポートしていません.10進数 だけ解析できます.解析内容に整数がある場合、整数 に解析される.
は、Stringではないペアに対してパーrseInt()またはパーrseFloat()を使用し、先にStringに変換してから、動作 で動作する.+番号を追加しても、データの正負性は変更されません. -番号を追加すると、データの正負性が変更されます.
です.私たちが書いたプログラムはメモリの中のconsole.log(typeof 123); // number
var num = 10;
console.log(typeof num); // number
var value= 10;
// value number , res
var res = typeof value;
// res string, typeof
console.log(typeof res); // string
文字列の種類var str1 = "hello";
var str2 = `nj`;
var str5 = `hello nj"; //
console.log(typeof str1 ); // string
console.log(typeof str2); // string
var str3 = "hello "nj""; //
var str4 = `hello `nj``; //
var str5 = "hello 'nj'"; //
var str6 = `hello "nj"`;//
var num = 110;
console.log(num); //
console.log("num"); // num
注意点:Numberタイプ
var num1= 123;
var num2= 3.14;
console.log(typeof num1); // number
console.log(typeof num2); // number
console.log(Number.MAX_VALUE); // 1.7976931348623157e+308
console.log(Number.MIN_VALUE); // 5e-324
console.log(Number.MAX_VALUE + Number.MAX_VALUE); // Infinity
console.log(typeof Infinity); // number
console.log(typeof -Infinity); // number
var num3 = NaN;
console.log(typeof num3); // number
var sum1 = 10 + 20;
console.log(sum1); // 30
var sum1 = 10.1 + 21.1;
console.log(sum1); // 31.200000000000003
Booleanブール値
var bool1 = true;
var bool2 = false;
console.log(typeof bool1); // boolean
console.log(typeof bool2); // boolean
var bool3 = Boolean(0);
console.log(bool3); // false
var bool4 = Boolean(1);
console.log(bool4); // true
var bool5 = Boolean(-1);
console.log(bool4); // true
var bool6 = Boolean(Infinity);
console.log(bool4); // true
var bool7 = Boolean(-Infinity);
console.log(bool4); // true
var bool8 = Boolean(NaN);
console.log(bool8); // false
var bool9 = Boolean(undefined);
console.log(bool8); // false
var bool10 = Boolean(null);
console.log(bool8); // false
var bool11 = Boolean("");
console.log(bool8); // false
var bool12 = Boolean("abc");
console.log(bool12); // true
NullとUdefinedvar num;
console.log(num); // undefined
var value1 = undefined;
console.log(typeof value); // undefined
var value2;
console.log(typeof value2); // undefined
var test1= null;
console.log(typeof test1);
var test1 = null;
var test2 = undefined;
console.log(test1 == test2);
console.log(test1 === test2);
他のタイプを文字列に変換変換されたデータタイプのtoString()メソッドを呼び出します.
var num1 = 10;
var res1 = num1.toString(); //
console.log(res1); // 10
console.log(typeof res1); // string
var num2 = true;
var res2 = num2.toString(); //
console.log(res2); // true
console.log(typeof res2); // string
var num3 = undefined;
var res3 = num3.toString(); //
console.log(res3);
var num4 = null;
var res4 = num4.toString(); //
console.log(res4);
var num5 = NaN;
var res5 = num5.toString();
console.log(res5); // NaN
console.log(typeof res5); // String
var num6 = 10;
var res6 = num6.toString();
console.log(typeof num6); // number
console.log(typeof res6); // string
var num7 = 20;
var res7 = num7.toString(2);
var res8 = num7.toString(8);
var res9 = num7.toString(10);
var res10 = num7.toString(16);
console.log(res7); // 10100
console.log(res8); // 24
console.log(res9); // 20
console.log(res10); // 14
変換されたデータをString()関数に入力します. var num1 = 10;
var res1 = String(num1); //
console.log(res1); // 10
console.log(typeof res1); // string
var num2 = true;
var res2 = String(num2); //
console.log(res2); // true
console.log(typeof res2); // string
var num3 = undefined;
var res3 = String(num3);
console.log(res3); // undefined
console.log(typeof res3); // string
var num4 = null;
var res4 = String(num4);
console.log(res4); // null
console.log(typeof res4); // string
変換されたデータと+“”を接続します. var num1 = 10;
var res1 = num1 + "";
console.log(res1); // 10
console.log(typeof res1); // string
var num2 = true;
var res2 = num2 + "";
console.log(res2); // true
console.log(typeof res2); // string
var num3 = undefined;
var res3 = num3 + "";
console.log(res3); // undefined
console.log(typeof res3); // string
var num4 = null;
var res4 = num4 + "";
console.log(res4); // null
console.log(typeof res4); // string
他のタイプをNumberタイプに変換します.変換されたデータをNumber()関数に入力します.
var str1 = "123";
var res1 = Number(str1);
console.log(res1); // 123
console.log(typeof res1); // number
var str2 = "123ab";
var res2 = Number(str2);
console.log(res2); // NaN
var str3 = "";
var res3 = Number(str3);
console.log(res3); // 0
var str4 = " ";
var res4 = Number(str4);
console.log(res4); // 0
var bool1 = true;
var res5 = Number(bool1);
console.log(res5); // 1
var bool2 = false;
var res6 = Number(bool2);
console.log(res6); // 0
var str5 = null;
var res7 = Number(str5);
console.log(res7); // 0
var str6 = undefined;
var res8 = Number(str6);
console.log(res8); // NaN
var str7 = "300px";
var res9 = parseInt(str7);
console.log(res9); // 300
var str8 = "300px250";
var res10 = parseInt(str8);
console.log(res10); // 300
console.log(parseInt("abc123")); // NaN, NaN
console.log(parseInt("")); // NaN,Number("") 0
var str9 = "20.5px";
var res11 = parseInt(str9);
console.log(res11); // 20
var str10 = "20.5.5.5px";
var res12 = parseFloat(str10);
console.log(res12); // 20.5
var str11 = true;
var res13 = parseInt(str11); // parseInt("true");
console.log(res13); // NaN
var res14 = Number(str11);
console.log(res14); // 1
+-演算子を使う var str1 = "666";
var res1 = +str1;
console.log(res1); // 666
console.log(typeof res1);
var str2 = "3.14";
var res2 = +str2;
console.log(res2); // 3.14
console.log(typeof res2);
var str3 = "666px";
var res3 = +str3;
console.log(res3); // NaN
console.log(typeof res3);
var flag = false;
var res4 = +flag;
console.log(res4); // 0
console.log(typeof res4);
var flag = true;
var res4 = +flag;
console.log(res4); // 1
console.log(typeof res4);