JS小記.2

3967 ワード

JSデータタイプ
JavaScriptは7種類のデータタイプの6種類のオリジナルデータタイプを定義しています.Number、String、Boolean、Null、Unidefined、Symbolは複雑なタイプです.
  • 記憶方式:元のタイプはスタックに格納され、すなわち変数アクセスの位置に格納される.複雑なタイプがヒープに格納されており、変数に格納されている値はポインタであり、記憶対象のメモリ部
  • を指す.
  • 参照方式:元のタイプは、細分化されない値として記憶および動作され、参照は値を移動させる.複雑な値は、実際の値ではなく参照によって記憶および動作される.複雑なオブジェクトを含む変数を作成する場合、その値はメモリ内の参照アドレスです.複雑なオブジェクトを参照する場合、その名前(変数またはオブジェクト属性)を使ってメモリの参照アドレスからオブジェクト値
  • を取得します.
  • 比較方式:元のタイプは値比較を採用し、複雑なタイプは参照比較を採用する.複雑なタイプは、同じオブジェクトを参照する場合にのみ等しいです.同じオブジェクトを含む2つの変数も互いに等しくないので、同じオブジェクト
  • を指していません.
  • 動的属性:複雑なタイプの場合、属性と方法を追加しても良いし、属性と方法を変更して削除しても良い.オリジナルのタイプは属性と方法を追加することができません.
  • 包装タイプ:オリジナルタイプがコンストラクターとして作成されたオブジェクトとして使用される場合、Javascriptはオブジェクトの特性と方法を使用してオブジェクトの性質を捨てて元のタイプ
  • に戻すためにオブジェクトに変換されます.
    typeofとinstance of
    typeofオペレータは、計算されていない操作数の種類を示す文字列を返します.特殊なのはNullに対してObjectに戻り、関数オブジェクトに対してFnctionに戻り、他のオブジェクトに対して、Object instance ofに戻り、変数がある変数かどうかを判断するための例です.
    変数が数値、文字列、ブール、関数かどうかを判断します.
    var a;
    typeof a === 'number';
    typeof a === 'string';
    typeof a === 'boolean';
    typeof a === 'function';
    
    NaNは何ですか
    NaNは、グローバル変数の属性がNumberデータタイプであるという意味で、Not A Numberは符号化ではNaNに直接使用されることが少ない.通常は、計算に失敗した場合、Mathのある方法の戻り値として出現する(例えば、Math.sqrt(-1)か、または1つの文字列を数値に解析しようと試みたが、失敗した場合(例えば、parseInt(「blabla」)).NaNに関する操作は、NaN等号演算子(==と==と)に戻りますが、一つの値がNaNかどうかを判断するためには使用できません.Number.isNaN()またはisNaN()関数を使用しなければなりません.自己比較を実行する中で、NaNもNaNだけあって、比較の中でそれ自身に等しくありません.
    非数値を数値に変換する
    Number()は、パーrseInt()は、パーパーrseFloat()パーパーパー秒eFloat()は文字列の前の空白文字を無視して、最初の非空白文字を見つけました.最初の文字が-でない場合、または数字がNaNに戻る場合、数値モードでない場合、0 xの先頭は16進数として扱いますが、2番目のパラメータを指定することができます.
    ==と==
    ==等しい2つの辺の操作数が等しい場合はtrue==合同の2つの辺の操作数が等しく、データタイプが同時にtrueに戻ります.
    breakとcontine
    break文は現在のループを中止し、switch文またはlabel文はプログラム制御フローを中止された直後のステートメントに移動します.continue文は現在の(またはラベル)の循環文のこの反復を終了し、ループの次の反復を続けます.
    break文との違いは、continueはサイクルの反復を終了することなく、次のようにすることである.
  • は、whileループにおいて、制御フローが条件判定にジャンプする.
  • は、forループにおいて、制御ストリームが更新文にジャンプする.continue文は、現在のループではなく、任意の記号を含んで、プログラムを指定されたループの次の反復にジャンプさせることができます.このとき、continue文は対応する循環内部にあることが要求されます.
  • void 0とundefinedは使用シーンにどんな違いがありますか?
    undefinedは現在、グローバル環境によく使われています.書き換えられません.しかし、局所作用領域では、書き換えられても良い.voidは書き換えられません.void演算子は与えられた表現を求めてundefinedに戻ります.一番短いのはvoid 0ですので、void 0でundefinedを表します.void 0はundefinedの代わりに局所的な作用領域で最適な選択です.undefinedが書き換えられないようにします.
    console.log(1+1)   //     2         
    console.log("2"+"4") //     24            
    console.log(2+"4") //      24                        
    console.log(+"4") //     4                         
    
    var a = 1;
    a+++a;       a++  a    2 a++       1  1+2=3
    typeof a+2;
         'number2'  typeof               typeof a     'number'            
    
    var a = 1;
    var b = 3;
    console.log( a+++b );
         4   a++      a++     1 
    
    var arr = [3,4,5];  //         
    for(var i = 0, i
    var obj = {
       name: "zoro",
       sex: "male",
       age: "21"
    }
    for(var key in obj){
       console.log(obj[key]);
    }
    
    var a = 1, b = 2, c = 3; 
    var val = typeof a + b || c >0
    console.log(val) 
         number2    typeof       'number'       'number2'     boolean true               'number2'
    
    var d = 5;
    var data = d ==5 && console.log('bb')
    console.log(data)
         undefined     d==5    true     console.log('bb')     undefined   data      undefined
    
    
    var data2 = d = 0 || console.log('haha')
    console.log(data2)
         undefined 0   boolean flase         undefined d      undefined    data2     d     undefined
    
    var x = !!"Hello" + (!"world", !!"from here!!");
    console.log(x)
         2       !         ""          flase       !    true ,                      
          !!"from here!!"    true   true + true             1+1     2 x    2