あれらの年nodeの城を攻めるライオンの道になります(五)

6420 ワード

ECMASprictリファレンスタイプ
  • Object Objectインスタンスはnew+コンストラクション関数()を使用して作成できます.オブジェクトの字面量表現も使用できます.アクセス先属性はポイント表示法.;[]表示法も使用でき、後者は変数で属性にアクセスできる
  • var object1 = new Object();
    var object2 = {name:'L'};  
    var key=name;
    object.name    object[key]
    
  • Array Array.length属性は読み取り専用ではなく、配列要素を変えることでlengthを変えることもできるし、lengthを変えることもできるし、配列を変えることもできる.
  • var arr=['a','b','c'];
    arr.length=2;
    console.log(arr);//['a','b']
    

    Arrayの検出
    console.log(typeof arr);//Object
    console.log(arr instanceof Array);//true
    console.log(arr instanceof Object);//true
    console.log(Array.isArray(arr));//true
    console.log(arr.constructor == Object);//false
    console.log(arr.constructor == Array);//true
    

    Array.join(c)は、配列の各要素がcでつなぎ合わせられた文字列を返し、パラメータが入力されていない場合はデフォルトで,つなぎ合わせます.
    var arr=['a','b','c']
    console.log(arr.join('|--|'));//  a|--|b|--|c
    
  • 配列はスタックとして(LIFO)push()を用いて押し込み、データ直配列の末尾を追加する.Pop()ポップアップ末尾データ
  • 配列はキューとして(FIFO)shift()を用いてキューを出て、配列ヘッダ要素を取得する.Push()はキューに入り、配列末尾にデータを追加
  • 配列は逆行列として使用(FIFO、頭部が末尾に入る)unshiftがキューに入り、配列の首部にデータを追加する.pop()はキューから出て、配列末尾要素を取得
  • 並び替え
  • reverse()、配列を反転します.
  • sort()は、配列ソートであり、関数指定ソートルールとして伝達される.
  • var arr=[0,1,5,10,15]
    arr.sort(function(a,b){
    if(a < b)      //      ,                  
            return -1;
        else if(a == b)//    0,          
            return 0;
        esle           //      ,                  
            return 1
    });
    console.log(arr);
    
  • concat()は、1つ以上のパラメータを受信し、まず現在の配列に基づいてコピーを作成し、パラメータが配列であれば各項目を配列コピーに追加し、数が配列でなければ直接配列コピーに追加する.
  • var arr=[1,2,3];
    var arr1=arr.concat(4,5,[6,7]);
    console.log(arr);//[ 1, 2, 3 ]
    console.log(arr1);//[ 1, 2, 3, 4, 5, 6, 7 ]
    
  • slice(start,end)は、現在の配列のいくつかに基づいて新しい配列を作成する.satrt開始位置、end終了位置を1つ減らし、endが指定されていない場合、デフォルトはlength
  • var arr=[1,2,3,4,5,6,7,8];
    console.log(arr.slice(1,4));//[2,3,4]
    console.log(arr.slice(1));//[2,3,4,5,6,7,8]
    
  • splice()削除:任意の数の項目を削除し、arguments[0]=削除の最初の項目位置、arguments[1]=削除の項目数
  • var arr=[1,2,3,4,5,6,7,8];
    arr.splice(2,4);
    console.log(arr);//[1,2,7,8]
    

    挿入(arguments[1]=0)|置換(arguments[1]=挿入項目数):任意の数の項目を挿入し、arguments[0]=開始位置、arguments[1]=削除された項目数、arguments[2~]=挿入項目
    var arr=[1,2,3,4,5,6,7,8];
    arr.splice(2,3,'c','d','e');
    console.log(arr);//          3 (3,4,5)  'c','d','e'。
    
  • 位置方法indexOf()左から右へ;LastIndexOf()右から左へ
  • 反復方法
  • every(fn)各実行fnは、trueを返すとtrueを返す.
  • var arr=[1,2,3,4,5,6];
    var flag=arr.every(function(data){
    return data>3;
    })
    console.log(flag);//false
    
  • some(fn)は各項目fnを実行し、いずれかがtrueを返すとtrueを返す
  • var arr=[1,2,3,4,5,6];
    var flag=arr.every(function(data){
    return data>3;
    })
    console.log(flag);//true
    
  • filter(fn)は各項目にfnを実行し、trueを返す項目は配列を構成して返される.---
  • var arr=[1,2,3,4,5,6];
    var flag=arr.filter(function(data){
    return data>3;
    })
    console.log(flag);//[4,5,6]
    
  • forEach(fn)は、それぞれfnを実行し、戻り値はありません.
  • map(fn)はそれぞれfnを実行し、関数呼び出しの結果からなる配列を返す.---
  • var arr=[1,2,3,4,5,6];
    var flag=arr.map(function(data){
    return data>3;
    })
    console.log(flag);//[ false, false, false, true, true, true ]
    
  • 集計方法reduce(fn)は配列第1項から後へ,reduceRight(fn)は配列最後項から前へ遍歴する.fn実行結果はprevとして次回呼び出しに渡される.配列が1つしかない場合は、直接戻ります.Arguments[0]=前の値prev arguments[1]=現在値cur arguments[2]=現在項目インデックスindex arguments[3]=配列オブジェクトarr
  • var arr=[1,2,3,4,5,6];
    var sum=arr.reduce(function(prev,cur,index,arr){
        return prev+cur;//       prev=arr[0],cur=arr[1];
    })
    console.log(sum);//21
    
  • Dateタイプvar data=new Date();getTime(ミリ秒)、getFullYear(年)、getMonth(月、0は1月)、getDate(日、1~31)、getDay(月、0は月)、getHours(時)、getMinutes(分)、getSeconds(秒)
  • Functionタイプ関数宣言:function fn(){},解析器優先ロード.関数定義:var fn=function(){}で、ローコードに実行してからロードを解析します.

  • 関数名は実際には関数オブジェクトを指すポインタであり、リロードは存在せず、後に定義されたオーバーライド先定義の
    関数内部にはarguments( )this( )caller( )argumenscalleeの属性があるargumentsオブジェクトを持つ関数を指す.
    function fn(num){
        if(num<=1)return 1;
        return num*f(num-1);//   
    }
    function fn(num){
        if(num<=1)return 1;
        return num*arguments.callee(num-1);
    }
    var color='yellow';
    var c1={color:'red'};
    var c2={color:'blue'};
    function say(){
    console.log(this.color);
    }
    c1.say=say;
    c1.say();//red
    c2.say=say;
    c2.say();//blue
    say();//yellow
    fuction out(){
    inner();
    }
    function inner(){
    console.log(arguments.callee.caller);
    }
    out()  out    
    

    関数内部に2つの属性があるlenght( )prototype関数内部には2つの非継承メソッドがありますapplyおよびcall~関数内部this値を設定するのと同じように、異なるドメインで関数を呼び出します.2つのパラメータを受信します.1つ目は環境実行ドメインで、2つ目はパラメータです.applyは配列で伝達され,callは1つずつ列挙される.
    var color='yellow';
    var o={color:'red'};
    function say(){
         var color='blue'
         console.log(this.color);
    }
    say()//yellow
    say.call(this)//yellow
    say.call(o)//red
    

    bind関数は実行環境をバインドできます
    var color='yellow';
    var o={color:'red'};
    function say(){
         console.log(this.color);
    }
    var bindSay=say.bind(o);
    bindSay();//red  yellow
    
  • 基本パッケージタイプString Number Booleanは、基本タイプ値を作成するたびに、対応するパッケージタイプ値を作成し、一連の方法を提供する.コード実行瞬間のみ
  • var s='test';
    s.name='t';
    console.log(s.name);//undefined
    //      -->
    var s=new String('test');
    s.name='t';
    s=null;
    

    一般的なString操作方法
    var s='abcdefghijk';
    s.charAt(1);//b
    s[1];//b
    s.charCodeAt(1)//98
    String.fromCharCode(98)//b
    var s1=s.concat('l','m')//abcdefghijklm
    var s1=s.slice(3);//"defghijk"
    var s1=s.substring(3);//"defghijk",    =    -1
    s.indexOf('a',i)//a      i    ,   0
    var s1=s.trim();//      
    var s1=s.toUpperCase()//  
    var s1=s.toLowerCase()//  
    
  • Math|,全域内蔵オブジェクト
  • Math.min(1,2,3,4)//1
    Math.max(1,2,3,4)//4
    Math.max.apply(Math,[1,2,3,4])//4       
    Math.random() 0<=x<1    -->    (         ,         )