JavaScriptデータ型(一)


Undefindタイプ
1つの値、すなわち特殊なundefinedしかありません.宣言されたが初期化されていない場合、この変数の値はundefinedです.宣言されていない変数に対してtypeofオペレータを使用すると、undefinedが返されます.しかし、他の操作は間違っています.
console.log(typeof foo) // "undefined"
console.log(foo) // ReferenceError
undefinedについては、void 0によって実現される厳密な方法もあります.このように実現される理由は、undefinedがJavaScriptのキーワードではなく、つまりundefinedを識別子とすることができ、あるいはwindow.undefinedの値が修正されることができるからである.
Nullタイプ
1つの値、すなわち特殊なnullしかありません.論理的観点から、nullの値は空のオブジェクトポインタを表すので、typeofオペレータを使用してnullの値を検出するとobjectに戻ります.
定義した変数が将来オブジェクトを保存する準備ができている場合は、その変数をnull .
Booleanタイプ
主にBoolean()関数について説明します
console.log(Boolean('a')) // true
console.log(Boolean('')) // false
console.log(Boolean(1)) // true
console.log(Boolean(0)) // false
console.log(Boolean(-1)) // true
console.log(Boolean(NaN)) // false
console.log(Boolean(Infinity)) // true
console.log(Boolean(-Infinity)) // true
console.log(Boolean({})) // true
console.log(Boolean(null)) // false
console.log(Boolean(undefined)) // false

Numberタイプ
IEEE 754フォーマットを使用して、整数値および浮動小数点値を表す.
//    

const intNum = 55; 

//     --        0 ,          (0 ~ 7)        ,     。

const octalNum1 = 070; //      56
const octalNum2 = 079; //         --   79
const octalNum3 = 08; //         --   8

//      --        0x ,         (0 ~ 9   A ~ F),   A ~ F      。

const hexNum1 = 0xA; //      10
const hexNum1 = 0x1f; //      31

算数演算を行うと、8進数と16進数のすべての数値が10進数に変換されます.
浮動小数点
  • の最高精度は17桁の小数です.
  • デフォルトでは、ECMAScriptは小数点の後ろに6個以上の浮動小数点数値を科学カウント法に変換します.
  • は、特定の浮動小数点値をテストしないでください.
  • const floatNum1 = .1; //   ,   
    const floatNum2 = 1.; //         ,   1
    const floatNum3 = 10.0; //   ,   10
    const floatNum4 = 3.125e7; //      。3.125  10 7  。   31250000。
    
    //         
    function equal(n1, n2) {
        return Math.abs(n1 - n2) < Number.EPSILON;
    }
    equal(0.1 + 0.2, 0.3) // true
    

    数値範囲
  • Number.MIN_VALUE.最小値、多くのブラウザでこの値は5 e-324
  • です.
  • Number.MAX_VALUE.最大値は、多くのブラウザで1.797693134862357 e+308
  • です.
  • 範囲を超えると自動的に特殊なInfinity値に変わり、正数であればInfinity(正無限)、負数であれば-Infinity(負無限)となる.
  • isFinite()関数は、1つの数が貧しいかどうかを判断します.
  • Number.NEGATIVE_INFINITY.負の無限の値.
  • Number.POSITIVE_INFINITY.無限の値.

  • NaN
  • NaNに関連する操作はすべてNaNを返します.
  • NaNは、NaN自体を含む任意の値に等しくない.
  • isNaN()関数を使用して、入力されたパラメータが「数値ではない」かどうかを確認します.
    console.log(0/0); // NaN
    console.log(10/0); // Infinity
    console.log(-10/0); // -Infinity
    console.log(10/'a'); // NaN
    console.log(10/''); // Infinity
    console.log(10/undefined); // NaN
    console.log(10/true); // 10
    console.log(10/false); // Infinity 
    console.log(10/null); // Infinity
    
    console.log(isNaN(NaN)); // true
    console.log(isNaN(10)); // false
    console.log(isNaN("10")); // false --         10
    console.log(isNaN("blue")); // true --        
    console.log(isNaN(true)); // true --          1
    
    // isNaN()       。        valueOf()   ,            ,            toString()   ,      。

  • 数値変換
  • Number()
  • parseInt()
  • parseFloat()
  • console.log(Number(10)); // 10
    console.log(Number("")); // 0
    console.log(Number("abc")); // NaN
    console.log(Number("000011")); // 11
    console.log(Number("123abc")); // NaN
    console.log(Number(true)); // 1
    console.log(Number(false)); // 0
    console.log(Number(undefined)); // NaN
    console.log(Number(null)); // 0
    
    //    parseInt()            :        (     )。
    console.log(parseInt(22.5); // 22
    console.log(parseInt("")); // NaN
    console.log(parseInt("70")); // 70
    console.log(parseInt("123abc")); // 1234
    console.log(parseInt("070")); // ECMAScript 5    70(   ),ECMAScript 3    56(   )
    console.log(parseInt("0xA")); // 10
    console.log(parseInt("0xf")); // 15
    
    // parseFloat()        ,                  。           。       。
    
    console.log(parseFloat("22.5")); // 22.5
    console.log(parseFloat("123abc")); // 123
    console.log(parseFloat("0xA")); // 0
    console.log(parseFloat("22.34.5")); // 22.34
    console.log(parseFloat("0908.5")); // 908.5
    console.log(parseFloat("3.125e7")); // 31250000
    

    Stringタイプ
    Stringタイプは、16ビットのUnicode文字からなる文字列、すなわち文字列を表すために使用されます.任意の文字列の長さは、lengthプロパティにアクセスすることによって取得できます.
    文字の文字数
    String                ,      。
    

    字面量
    意味
    折り返し
    \t
    タブ
    \b
    チェックアウト
    \r
    リターンマッチ
    \f
    給紙
    \\
    スラッシュ
    \'
    単一引用符(')は、単一引用符で表される文字列で使用されます.たとえば、「He said,'hey.'」
    \"
    二重引用符(")は、二重引用符で表される文字列で使用されます.たとえば、「He said」、「hey.」などです.
    \xnn
    16進コードnnで表される1文字(nは0~F).例えば、x 41は「A」を表す
    \unnnn
    16進コードnnnnで表されるUnicode文字(nは0~F).例えば、u 03 a 3はギリシャ文字を表すΣ
    文字列に変換
    1.toString()は、nullおよびundefinedの他にこの方法がない.パラメータがあります.出力値の基数です.デフォルトは10進数です.
    const num = 10;
    console.log(num.toString()); // "10"
    console.log(num.toString(2)); // "1010"
    console.log(num.toString(8)); // "12"
    console.log(num.toString(10)); // "10"
    console.log(num.toString(16)); // "a"
    
    const bool = true;
    console.log(bool.toString()); // "true"
    
    const obj = {};
    console.log(obj.toString()); // "[object Object]"
    
    const func = function() {};
    console.log(func.toString()); // "function() {}"
    
    const nul = null;
    console.log(nul.toString()); // TypeError: Cannot read property 'toString' of null
    
    const unde= undefined;
    console.log(unde.toString()); // TypeError: Cannot read property 'toString' of undefined

    2.String()変換する値がnullまたはundefinedであるかどうか分からない場合、変換関数String()を使用することもできます.これは任意のタイプの値を文字列に変換することができます.次の変換ルールに従います.
  • 値にtoString()メソッドがある場合、そのメソッド(パラメータなし)が呼び出され、対応する結果が返される.
  • 値がnullである場合、"null"
  • を返す.
  • 値がundefinedである場合、"undefined"
  • を返す.
    3.プラス記号オペレータを使用して文字列("")に加算
    const bool = true;
    console.log(bool + ""); // "true"
    
    const nul = null;
    console.log(nul + ""); // "null"
    
    const unde= undefined;
    console.log(unde + ""); // "undefined"

    typeofオペレータ
    // typeof                
    console.log(typeof foo) // "undefined"
    console.log(typeof true) // "boolean"
    console.log(typeof "abcd") // "string"
    console.log(typeof 1) // "number"
    console.log(typeof null) // "object"
    console.log(typeof {}) // "object"
    console.log(typeof function(){}) // "function"

    リファレンス
    『JavaScriptプレミアムプログラミング』(第3版)