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
  • console.log(typeof 123); // number
    var num = 10;
    console.log(typeof num); // number
    
  • typeofオペレータはチェックの結果を文字列で
  • に返します.
    var value= 10;
    //    value     number         ,    res   
    var res = typeof value; 
    //     res      string,   typeof            
    console.log(typeof res); // string
    
    文字列の種類
  • 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
    
    注意点:
  • とC言語は違います.C言語ではシングル引用符で囲まれているのは文字
  • です.
  • であり、JavaScriptでは、シングルクォーテーションマークまたはダブルクォーテーションマークで囲まれている文字列
  • である.
    Numberタイプ
  • JSのすべての数値はNumberタイプ(整数と小数)
  • です.
    var num1= 123;
    var num2= 3.14;
    console.log(typeof num1); // number
    console.log(typeof num2); // number
    
  • メモリの制限のため、ECMAScriptは世界のすべての数値を保存できません.
  • 最大値:Number.MAXUVALE
    console.log(Number.MAX_VALUE);  // 1.7976931348623157e+308
    
  • 最小値:Number.MINUVALE
    console.log(Number.MIN_VALUE);  // 5e-324
    
  • 無限大:Infinityは、最大値を超えると
    console.log(Number.MAX_VALUE + Number.MAX_VALUE); // Infinity
    
  • に戻ります.
  • 無限小:-Infinityは、最小値を超えると
     console.log(typeof Infinity); // number
     console.log(typeof -Infinity); // number
    
  • に戻ります.
  • NaN不法数字(Not A Number)は、JSにおいて数値を計算したときに戻りませんでした.NaN
    var num3 = NaN;
    console.log(typeof num3); // number
    
  • に戻ります.
  • Numberタイプ注意点
  • JSにおける整数の演算は、正確な結果を保証することができる.
    var sum1 = 10 + 20;
    console.log(sum1); // 30
    
  • JSにおける浮動小数点の演算は、不正確な結果を得ることができる.
    var sum1 = 10.1 + 21.1;
    console.log(sum1); // 31.200000000000003
    
  • 注意点:
  • C言語での整数はintであり、小数はfloatまたはdouble
  • である.
  • 、JavaScriptの中では整数でも小数でもNumber
  • です.
    Booleanブール値
  • ブールタイプは、論理値タイプまたは真伪値タイプ
  • とも呼ばれる.
  • ブールタイプは、本物と偽の2つの値だけを取ることができます.
  • var bool1 = true;
    var bool2 = false;
    console.log(typeof bool1); // boolean
    console.log(typeof bool2); // boolean
    
  • Booleanタイプのワード値は2つしかないですが、ECMAScriptのすべてのタイプの値はこの2つのBoolean値と同等の値があります.
  • 任意の非ゼロ値はtrueであり、正負無限大を含み、0とNaNだけがfalse
  • である.
  • 任意の非空文字列はtrueです.空の文字列だけがfalse
  • です.
  • どのオブジェクトもtrueです.nullとundefinedだけがfalse
  • です.
    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とUdefined
  • Udefinedは、変数の未割り当てを表しています.このタイプの値は一つしかないです.undefined
  • です.
    var num;
    console.log(num);  //   undefined
    
  • undefinedはUnidefinedタイプの字面量です.
  • 元のundefinedと10、abcは同じ定数
  • です.
  • 後者のUdefinedとNumberは、Booleanは同じデータタイプ
  • です.
  • 注意したいのは、typeofが初期化されていない変数と宣言されていない変数に対してundefinedを返します.
  • var value1 = undefined;
    console.log(typeof value); //   undefined
    
    var value2;
    console.log(typeof  value2); //   undefined
    
  • Nullタイプは、2番目に1つの値しかないデータタイプで、この特殊な値はnull
  • です.
  • 意味からnullは空のオブジェクトを表しています.typeofチェックnullはObject
  • に戻ります.
    var test1= null;
    console.log(typeof test1);
    
  • undefined値は実際にnull値から派生しているので、undefinedとnullが等しいかどうかを比較すると、true
  • に戻ります.
    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
    
  • nullとundefinedの2つの値はtoString()の方法がないので、彼らの方法を呼び出したら
  • をエラーします.
            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
    
  • 数値タイプのtoString()は、一つのパラメータを持って、対応する進数の値を出力することができます.
            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()関数に入力します.
  • String()関数の存在意義:
  • .toString()がない値があります.このときはString()が使えます.例えば、undefinedとnull
  • NumberとBooleanについては、実際に呼び出しのtoString()方法
  • である.
            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
    
  • は、nullおよびundefinedに対して、tostring()メソッドを呼び出すことなく、内部で新しい文字列
  • を生成する.
            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
    
    変換されたデータと+“”を接続します.
  • 任意のデータと+“”が一緒に接続されると文字列
  • に変換されます.
  • 内部実装原理は、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
    
  • に変換される.
  • 文字列に数字以外の内容がある場合、NaN
        var str2 = "123ab";
        var res2 = Number(str2);
        console.log(res2); // NaN
    
  • に変換される.
  • 文字列が空の列または空の文字列である場合、0
        var str3 = "";
        var res3 = Number(str3);
        console.log(res3); // 0
    
        var str4 = "    ";
        var res4 = Number(str4);
        console.log(res4); // 0
    
  • に変換される.
  • ブール-->数字
  • trueを1
  • に変換します.
  • falseは0
        var bool1 = true;
        var res5 = Number(bool1);
        console.log(res5); // 1
    
        var bool2 = false;
        var res6 = Number(bool2);
        console.log(res6); // 0
    
  • に回転します.
  • null-->数字-->0
        var str5 = null;
        var res7 = Number(str5);
        console.log(res7); // 0
    
  • undefined-->デジタル-->NaN
       var str6 = undefined;
       var res8 = Number(str6);
       console.log(res8); // NaN
    
  • 変換されたデータをパーrseInt()関数に入力します.
  • Number()関数では、混合文字列が存在するかどうかにかかわらず、NaN
  • に戻ります.
  • は、パーrseInt()/parseFloat()を利用して文字列の有効整数
  • を抽出することができる.
  • parseFloat()は第一個を解析します.第二個に出会います.または、非ディジタル終了です.
  • の違いは前者が整数しか抽出できないことであり、後者は小数
  • を抽出することができる.
  • パースInt()は文字列中の整数を抽出する.
  • 無効数字
  • に遭遇するまで、最初の有効数字から開始する.
  • 第一位が有効数字でないと、何も抽出できないので、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
    
    
  • である.
  • パーrseFloatは文字列中の小数点を抽出する.
  • は第一個を解析します.第二個に遭遇するか、或いは非数値終了
  • 第一位が有効数字でないと、何も抽出できません.
  • は第二のパラメータをサポートしていません.10進数
  • だけ解析できます.
  • 解析内容に整数がある場合、整数
        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
    
  • に解析される.
  • は、Stringではないペアに対してパーrseInt()またはパーrseFloat()を使用し、先にStringに変換してから、動作
  • で動作する.
            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);