データタイプ、演算子ストリーム、プロセス制御文

4315 ワード

JavaScriptはいくつかのデータタイプを定義していますか?どれがオリジナルタイプですか?どれが複雑なタイプですか?元のタイプと複雑なタイプの違いは何ですか?
  • JavaScriptは7種類のデータタイプを定義しています.6種類の元データタイプがあります.Unidefined、Null、Boolean、Number、String、Symbolと複雑なデータタイプObject.
  • 元のタイプと複雑なタイプの違い:
  • 記憶方式:元のタイプはスタックに格納され、すなわち変数アクセスの位置に格納される.複雑なタイプがヒープに格納されており、変数に格納されている値はポインタであり、記憶対象のメモリに指しています.
  • 参照方式:元のタイプは、細分化されない値として記憶および動作され、参照は値を移動させる.複雑な値は、実際の値ではなく参照によって記憶および動作される.複雑なオブジェクトを含む変数を作成する場合、その値はメモリ内の参照アドレスです.複雑なオブジェクトを参照する場合、その名前(すなわち変数またはオブジェクト属性)を使ってメモリの参照アドレスからそのオブジェクト値を取得します.
  • 比較方式:元のタイプは値比較を採用し、複雑なタイプは参照比較を採用する.複雑なタイプは、同じオブジェクトを参照する場合にのみ等しいです.同じオブジェクトを含む2つの変数も互いに等しくないので、同じオブジェクトを指していません.
  • 動的属性:複雑なタイプの場合、属性と方法を追加しても良いし、属性と方法を変更して削除しても良い.オリジナルのタイプは属性と方法を追加できません.
  • 包装タイプ:オリジナルのタイプが構築関数として作成されたオブジェクトとして使用される場合、Javascriptはオブジェクトの特性と方法を使用してオブジェクトの性質を捨てて元のタイプに戻すためにオブジェクトに変換されます.
  • 参考資料
  • typeofとinstance ofの役割と違い?
  • typeofは1元演算であり、1つの演算数の前に置くと、演算数は任意のタイプであってもよい.この戻り値は演算数の種類を示す文字列です.typeofは普通以下のいくつかの結果number、bootlean、string、function、object、undefinedに戻ります.私たちはtypeofを使用して、if(typeof a)=「undefined」のような変数が存在するかどうかを取得します.alert(「ok」)」の代わりに、if(a)を使用しないでください.aが存在しないとエラーが発生しますので、Aray、Nullなどの特殊なオブジェクトに対してtype ofを使ってすべてobjectに戻ります.これはtypeofの限界です.
  • instance ofは、var a=new Aray()のような変数があるかどうかを判定するために使用される.alert(a instance of Aray);trueに戻ります.同時にalertもtrueに戻ります.これはArayがobjectのサブクラスだからです.
  • フレームをまたぐ検出配列
  • どのように変数が数字、文字列、ブール、関数かを判断しますか?
    var a;typeof a=="number"数字typeof a==「string」かどうかを判断します./文字列typeof a==「bolean」かどうかを判断します.ブールtypeof a==「function」かどうかを判断します./関数かどうかを判断する
    NaNは何ですか何か特別なところがありますか?
  • NaNは、本来返すべき数値の動作数が数値に戻らない場合を示す特殊な値であり、任意の数字を非数値で割るとNaNに戻りますので、他のコードの実行に影響はありません.
  • NaNの特徴:NaNに関する動作はいずれもNaNに戻ります.NaNはどの値にも等しくありません.
  • を含みます.
  • は、一つの値がNaN
  • であるかどうかを判定するisNaN関数がある.
    どのように非数値を数値に変換しますか?
  • には3つの関数があります.非数値を数値に変換することができます.Number()、パーrseInt()、パーrseFloat().
  • ==と==の違いは何ですか?
  • ==値が等しい場合、jsはいくつかの場合、暗黙的なタイプの変換を行ってから比較します.
  • ==厳密に等しいので、データタイプを変換しません.
  • breakとcontinueの違いは何ですか?
  • breakはサイクルを終了し、循環体を飛び出してからループを実行する後のステートメント
  • です.
  • continueはこのサイクルを終了し、次のサイクルを実行し続けます.
    void 0とundefinedは使用シーンにどんな違いがありますか?
  • undefinedは予約語ではなく、部分的な作用領域で書き換えられます.
  • voidは書き換えられません.void演算子は与えられた表現を求めてundefinedに戻ります.一番短いのはvoid 0ですので、void 0でundefinedを表します.undefinedが書き換えられないようにします.
  • 以下のコードの出力結果は?なぜですか
    console.log(1+1);    
    console.log("2"+"4");  
    console.log(2+"4"); 
    console.log(+"4");
    
  • 2 //
    24 //
    24 // : ,
    4 //

    
    #           ?
    

    var a = 1;
    a+++a;
    typeof a+2;

    -  
    

    "number2" //typeof +

    
    #           ?    
    

    var a = 1;
    var b = 3;
    console.log( a+++b );

    -  
    

    4 // a++ = 1, a+++b = 1+3 = 4

    
    #      ,               
    

    var arr = [3,4,5]

    -  
    

    for(i = 0;i < arr.length;i++){
    console.log(Math.pow(arr[i],2));
    }

    
    #     JSON,       
    

    var obj = {
    name: 'hunger',
    sex: 'male',
    age: 28
    }

    -  
    

    for(var pro in obj){
    console.log(obj[pro]);
    }

    
    #          ?     (    )
    

    var a = 1, b = 2, c = 3;
    var val = typeof a + b || c >0
    console.log(val)

    var d = 5;
    var data = d ==5 && console.log('bb')
    console.log(data)

    var data2 = d = 0 || console.log('haha')
    console.log(data2)

    var x = !!"Hello" + (!"world", !!"from here!!");
    console.log(x)

    -  
    

    'number2' // typeof a 'number','number'+2'='number2', boolean true, || , 'number2'
    undefined //d==5 ture,&& true ,console.log() undefined, data undefined
    undefined //data2 = d = 0 || undefined undefined
    2 // true+(false,true) true+true=2