いくつかの前の問題のまとめ


テーマ1:統計文字列の中で最も多く出現した文字
eg:var s = "abcdefghijklabcdaaaefadca";/そのうちaの出現回数は最も多く、7回である.
このタイトルを取ったら、どうしますか?
まず二つの考えを思いつきます.
  • 暴力検索、1つの要素を取り出して、また循環して、獲得回数はjsonキーペアに入れて、更に大きさの
  • を比較します.
  • は削除を見つけました.正規表現を使って置換します.長さの差はその繰り返しの回数
  • です.
    暴力検索:
    var s = "abcdefghijklabcdaaaefadca";
    var json = {};
    var Max = {
        key:"",
        value:0
    };
    var arr = s.split("");
    for(var i=0;i Max.value){
            Max.key = prop;
            Max.value = json[prop]
        }
    }
    console.log(Max); //      
    正規法:
    var s = "abcdefghijklabcdaaaefadca";
    //            
    var json = {};
    //               
    var Max = {
        key:"",
        value:0
    };
    //    ,           
    while(s){
        var len1 , len2;
        len1 = s.length;
        var first = s.charAt(0);
        s = s.replace(new RegExp(first,"g"),'');
        len2 = s.length;
        json[first] = len1-len2;
    }
    //    
    for(prop in json){
        if(json[prop] > Max.value){
            Max.key = prop;
            Max.value = json[prop]
        }
    }
    console.log(Max); //    
    このテーマにはもう一つのいい方法があります.
    var s = "abcdefghijklabcdaaaefadca";
    var json = {};
    var Max = {
        key:"",
        value:0
    };
    for(var i=0;i Max.value){
            Max.key = prop;
            Max.value = json[prop]
        }
    }
    console.log(Max); //    
    
              O(n),        !
    次の出力値を求めます.
    function Show(){
        getName = function(){
            console.log(1);
        }
        return this;
    }; 
    Show.getName = function(){
        console.log(2);
    };
    Show.prototype.getName = function(){
        console.log(3);
    };
    var getName = function(){
        console.log("4");
    }
    function getName(){
        console.log(5);
    };
    
           :
    1、Show.getName();    
    2、getName();        
    3、Show().getName();   
    4、getName();          
    5、new Show.getName();  
    6、new Show().getName();  
    7、new new Show().getName();
    このテーマはJavascriptの基礎を考察しています.
    まずJSの実行過程を理解します.
  • を先に上げます.(まず関数を上げてから変数を上げます.名前が同じなら、変数の昇格は関数の昇格をカバーします.)
  • は再実行され、もし閉ループが発生したら
  • を作成する.
  • は、クローズド空間で1と2
  • を繰り返す.
  • は、先に定義(昇格)し、
  • を実行しています.
  • 変数アップ
  • 関数アップ
  • この問題は次のように答えます.
  • は、func.method( . ) のような形をしており、Show.getName() が発見された場合、方法属性を実行し、2
  • を出力する.
  • は、JS実行プロセスに従って、 getName(), getName , 、変数getNameがその同名の関数をカバーしていることを知っています. getName、結果は「4」
  • です.
  • 形はfunc().method()のように、 func() , func() method という意味ですので、まずFnc()の戻り値は何ですか?return thisthis ? ,func , this windowShow()の関数が実行された後、getNameの定義が変更されたので、window.getName()の出力は
  • です.
  • getName()は、現在の環境ではwindow.getName()に相当し、出力は
  • である.
  • new Show.getName()は、まずshow.get Name()出力2をnewで
  • を実行します.
  • new Show().getName()はnewキーワードを使って、関数ショーをコンストラクタにしました.この時、returnは機能しません.getNameはコンストラクタにはありません.プロトタイプのオブジェクトを探して3
  • を出力します.
  • new new Show().getName()は、第六問に基づいて3を出力した後、newの一つ
  • にある.
    javascriptのすべての関数はnew func()のキーワードを使って、オブジェクトを生成することを表します.この点を理解して、上のことを理解するのは簡単です.
    Javascriptシンプルコンセプト
    javascriptのtypeofはどのタイプのデータを返しますか?
  • object、number、function、book、undefind、string
  • 配列のいくつかの方法を検出して、objが配列タイプかどうかを検出します.
  • Aray.isAray(obj)
  • obj instance of Aray
  • arr.co nstructor.name
  • toStering.call()
  • 従来のイベントバインディングとW 3 C規格に適合するイベントバインディングにはどのような違いがありますか?
    従来のイベントバインド:
    123
    div1.onclick=function(){};
  • 同じ要素に二回以上の同じタイプのイベントが結合されている場合、後ろのバインディングは前のバインディング
  • をカバーする.
  • DOMイベントストリームイベントキャプチャフェーズSèターゲット要素フェーズ=>イベント発泡フェーズ
  • をサポートしていません.
    W 3 C規格に準拠したイベントバインディングの方式addEventListener/attachEvent A、非IEブラウザ:addEventListener
  • は、同じ要素に二回以上の同じタイプのイベントを結合しているということで、
  • を順次トリガします.
  • DOMイベントフローをサポートする
  • イベントバインディング参照を行うために、onプレフィックス
  • を必要としない.
  • addEventListener(「click」、function(){}true)//このときのイベントは、イベントキャプチャ段階において
  • を実行することである.
  • の第3のパラメータ:Trapフェーズで実行するか否かを表し、デフォルト値はfalse
  • である.
  • ddEvent Listener(「click」、function(e)
  • addEvent Listener(「click」、function(){}false)イベントは、発泡段階で
  • を実行する.
    B、IEブラウザ
  • ie 9から、ie 11 edEvent Listener
  • ie 9以前ie 8:atachEvent/detachEvent
  • イベントタイプの参照を行うには、onプレフィックス
  • を伴う必要がある.
  • dom 1.atachEvent(「onclick」、functionn(){}このような方法は、イベントの泡立ちだけをサポートし、イベントの捕獲をサポートしません.
    callとappyの違い
    callとapplyは同じです.一つのオブジェクトに属さない方法で、このオブジェクトを実行させるためです.
  • toStering.call([],1,2,3)
  • toStering.appy([],[1,2,3])
  • Object.call(this、Obj 1、Obj 2、Obj 3)
  • Object.appyの違い:
  • call 2番目のパラメータは、パラメータリスト
  • を開始します.
  • appyの2番目のパラメータは、1つのパラメータ配列
  • を受け取り始める.
    jQueryフレームの中で$ajax()の常用パラメータはどれらがありますか?
  • type
  • タイプ:String
  • のデフォルト値:「GET」).要求方式(「POST」または「GET」)は、デフォルトは「GET」です.注意:他のHTTP要求方法は、PUTやDELETEなども使用できますが、ブラウザの一部のみがサポートされています.
  • url
  • タイプ:String
  • デフォルト値:現在のページアドレス.要求の住所を送ります.
  • success
  • タイプ:Function要求成功後のコールバック関数.
  • パラメータ:サーバから戻り、dataTypeパラメータに従って処理後のデータを返します.状態を記述する文字列.これはAjaxイベントです.
  • options
  • タイプ:Object
  • オプションです.AJAXは設定を要求します.すべてのオプションが選択されます.
  • async
  • タイプ:Boolean
  • デフォルト値:true.デフォルト設定では、すべての要求は非同期要求です.同期要求を送信する場合は、このオプションをfalseに設定してください.なお、同期要求はブラウザをロックし、ユーザの他の操作は要求が完了するまで待つ必要があります.
  • beforeSend(XHR)
  • タイプ:Function
  • リクエストを送信する前に、カスタマイズされたHTTPヘッダなどのXMLHttpRequestオブジェクトの関数を変更することができます.XMLHttpRequestオブジェクトは唯一のパラメータです.
  • これはAjaxイベントです.falseに戻るとajax要求をキャンセルすることができます.
  • cache
  • タイプ:Boolean
  • デフォルト値:true、dataTypeはscriptとjsonの場合、デフォルトはfalseです.falseに設定します.このページはキャッシュされません.