JavaScriptデータタイプ-演算子-フロー制御文

5649 ワード

JavaScriptはいくつかのデータタイプを定義していますか?どれがオリジナルタイプですか?どれが複雑なタイプですか?元のタイプと複雑なタイプの違いは何ですか?
  • JSには6種類のデータタイプがあります.
  • 数値(number):整数と小数(例えば1と3.14)
  • 文字列(string):文字構成のテキスト(例えば「ハローワールド」)
  • ブール値:true(真)とfalse(偽)の2つの特定値
  • undefined:「定義されていない」または「存在していない」という意味、すなわち現在定義されていないため、ここでは一時的にいかなる値もない
  • .
  • null:無値、つまりここの値が無の状態を表します.
  • オブジェクト:各種値からなるセット
  • のうち、number、string、bollan、undefined、nullは元のタイプ(基本タイプ)に属します.objectは複雑なタイプに属します.
  • 基本タイプと引用タイプの違い:
  • 基本データタイプの値は可変ではなく、参照タイプの値は変更可能な
  • である.
  • 基本的なデータタイプは、属性および方法を追加することができず、参照タイプは、属性および方法
  • を追加することができる.
  • 基本データタイプの割当値は単純な賦課値であり、一つの変数から他の変数への基本タイプの値は直接にこの値を新しい変数に割り当てられた位置にコピーします.参照タイプの割当値は、オブジェクト参照
  • である.
  • 基本データタイプの比較は値の比較であり、参照タイプの比較は参照の比較
  • である.
  • 基本的なデータタイプは、スタック領域に格納されている.参照の種類は、オブジェクトの参照をスタックに保存し、オブジェクトエンティティをスタックに保存する
  • です.
    typeofとinstance ofの役割と違い?
    typeof
  • typeofオペレータは、計算されていない動作数の種類を示す文字列を返します.基本タイプを判断するために使用される値
      :typeof operand
    operand       ,        ,       。
    
  • typeofはnull以外の基本タイプの使用はこのタイプを表す文字列を返します.
  • typeofは、function以外のすべての参照タイプを使用すると、「Object」に戻ります.
    instance of
  • instance of演算子は、オブジェクトがそのプロトタイプチェーンに構造関数のプロトタイプ属性が存在するかどうかをテストするために使用されます.一般に、オブジェクトがある参照タイプに属するかどうかを判断するために用いられる.
  • 例:
    typeof 1 -> "number"
    typeof "1" -> "string"
    typeof null -> "object"
    
  • どのように変数が数字、文字列、ブール、関数かを判断しますか?
  • は、これらのデータタイプについてtypeofで判断することができます.例えば、
    typeof {} -> "object"  
    typeof [] -> "object"
    
    function f(){}
    typeof f -> "function"
    
  • NaNは何ですか何か特別なところがありますか?
  • グローバル属性NaNは、Not-A-Numberの値を表しています.
  • NaN属性の初期値はNaNであり、Number.NaNの値と同じである.現代ブラウザ(ES 5)では、NaN属性は設定不可(non-configrable)であり、書き込み不可(non-writable)の属性である.
  • は、符号化においてNaNに直接使用されることが少ない.通常は、計算に失敗した場合、Mathのある方法の戻り値として出現する(例えば、Math.sqrt(-1)か、または1つの文字列を数値に解析しようと試みたが、失敗した場合(例えば、parseInt(「blabla」)).
  • は、一つの値がNaNであるかどうかを判断する.
  • 等号演算子(==和==)は、一つの値がNaNであるかどうかを判断するために使用できません.Number.isNaN()またはisNaN()関数を使用しなければなりません.自己比較を実行する中で、NaNもNaNだけあって、比較の中でそれ自身に等しくありません.
      :object instanceof constructor
    object       .
    constructor       
    
  • どのように非数値を数値に変換しますか?
  • 1.Number()関数を使用します.
    [] instanceof Array -> true
    
    //       
    function C(){} 
    function D(){} 
    var o = new C();
    
    // true,   Object.getPrototypeOf(o) === C.prototype
    o instanceof C;
    
    // false,   D.prototype  o     
    o instanceof D;  
    
    // true,  Object.prototype.isPrototypeOf(o)  true;(Object           )
    o instanceof Object;
    
  • .parseInt()は、文字列を整数に変換するために使用されます.
    typeof 1 === "number" -> true
    typeof "1" === "string" -> true
    
    function f(){}
    typeof f === "function" -> true
    
  • .parseFloat()は、一つの文字列を浮動小数点に変換するために使用される.
    NaN === NaN;        // false
    Number.NaN === NaN; // false
    isNaN(NaN);         // true
    isNaN(Number.NaN);  // true
    
  • .非数値の前に「+」を追加する
    Number(true) // 1
    Number("1") // 1
    Number("1.23") // 1.23
    
    //            NaN
    Number("a") // NaN
    Number("123e3") // NaN
    
  • .
    ==と==の違いは何ですか?
  • ES 5は、2つの異なる値比較動作を提供する.
  • 厳密に等しい(「triple equals」または「identity」)、使用==
  • 緩和イコール(「double equals」)、使用==
  • 厳格イコール==
  • フルオペレータは、2つの値が等しいかどうかを比較し、2つの比較された値は比較前に暗黙的に変換されない.二つの比較された値が異なるタイプを持つ場合、この二つの値は不完全である.そうでなければ、2つの比較された値の種類が同じであれば、値も同じであり、numberタイプでない場合は、2つの値が合同となります.最後に、2つの値がnumberタイプであれば、両方ともNaNではなく、数値が同じ、または2つの値がそれぞれ+0と−0である場合、2つの値は合同であると考えられる.全クラスの操作子はNaNと他のいかなる値はすべて不完全だと思って、それ自身を含みます.例えば:1==「1」/false
  • 厳格ではない等しい=
  • 等しいオペレータは、2つの値が等しいかどうかを比較し、比較前に2つの比較された値を同じタイプに変換する.変換後(式の片側または両方が変換される可能性がある)、最終的な比較方式は全等オペレータ==の比較方式に相当します.等しいオペレータは交換法則を満たす.例えば:1="1"//true
  • breakとcontinueの違いは何ですか?
  • break文は、サイクルから飛び出すために使用されます.break文がサイクルから飛び出すと、このサイクルの後のコードが実行され続けます.もしあれば、
    parseInt('123') // 123
    parseInt('   81') // 81
    parseInt(1.23) // 1
    
    //                    ,                  NaN
    parseInt('15e2') // 15
    parseInt('abc') // NaN
    
  • continue文は、サイクル中の反復を中断し、指定された条件があれば、次にループ中の次の反復を継続する.
    parseFloat('3.14') // 3.14
    
    //                    ,                  NaN
    parseInt('15e2') // 15
    parseInt('abc') // NaN
    
  • void 0とundefinedは使用シーンにどんな違いがありますか?
  • voidは、後の表現を実行してundefinedに戻りますが、場合によってはundefinedは、関数では、undefinedでは判断できません.ですから、void 0でundefinedに戻り判定を行います.Window.undefinedを原形チェーン上で検索する時間を減らしただけでなく、誤って修正されたundefinedを使うことも避けました.
  • 以下のコードの出力結果は?なぜですか
    //    Number()    
    +"1" // 1
    +true //1
    +"1.1" //1.1
    +"123a" //NaN
    
    以下のコードの出力結果は?
    for (var i = 1; i < 10; i++) {
      if (i % 4 === 0) {
        break
      }
      console.log(i)
    }
    //   1,2,3
    
    以下のコードの出力結果は?なぜですか
    for (var i = 1; i < 10; i++) {
        if (i % 4 === 0) {
          continue
        }
        console.log(i)
      }
      //   1,2,3,5,6,7,9
    
    行列を巡回して、行列内の印刷配列の各項目の平方を
      console.log(1+1); 
      // 2  +                 
      console.log("2"+"4");
      // "24"  +                   
      console.log(2+"4"); 
      // "24"   
      console.log(+"4");
      // 4  +        ,           
    
    JSONを巡回して、中の値を印刷します.
      var a = 1;  
      a+++a;  
      typeof a+2;
      // "number2"
      //   :(a++)+a -> 3; (typeof a)+2 -> "number2"
    
    以下のコード出力結果は?なぜですか
      var a = 1;
      var b = 3;
      console.log( a+++b );
      // 4,   ++      +,  (a++)+b,a++  a  ,  :1+3=4