javascript.03関数定義、関数パラメータ(形参、実参)、関数の戻り値、発泡関数、関数のロード、局部変数と大域変数、暗黙的大域変数、JS事前解析、素数、フィボナッチ数列かどうか…

9444 ワード

1.1知識点
  • 関数:繰り返し実行できるコードブロック
  • です.
  • .  構成:パラメータ、機能、戻り値
  • はなぜ関数を使うのですか?一部のコードの使用回数が多いので、パッケージ化します.必要な時は
  • を呼び出します.
  • 関数は起動しません.自分では
  • を実行しません.
  • 同名の関数は、前の
  • をカバーします.
  • 関数名は関数全体に等しく、関数名を印刷することは、関数全体を印刷するコード
  • に等しい.
  • .  関数をロードするときは、関数名のみをロードし、関数体
  • をロードしません.
  • パラメータは、局所変数
  • に相当する.
  • の2つのフラットレベルの関数で変数は相互に影響しません.
  • .     事前解析:関数はドキュメントを説明する時、ドキュメントの一番前に言及されます.ロードとは違います.
  • 第一種類:解析する時は早めになります.どこでも利用できます.
  • 1.2関数の定義
  • 第一種類:解析する時は早めになります.どこでも利用できます.
    1.function fun(a,b){関数体;return; }
  • の第二の種類:関数は前倒しされません.使用は定義の後でなければなりません.
    2.var fn 2=function(){関数体}
    3.//関数名はあってもなくてもいいです.匿名関数という名前はありません.
  • 第3の種類:関数は前倒しされません.使用は定義後でなければなりません.関数体に引用符を付けないと、呼び出しなくても実行されます.
    1.var fn 3=new Function(「関数体」);
    1.3関数のパラメータ
  • パラメータを設定すると、修正値が規則を変更しないという問題を解決できます.
  • は、関数の機能性を強化し、プログラマとの相互作用、および関数の拡張可能性を高める
  • .
  • JSは
  • を積載する方法がありません.
  • 規則にはいくつかの変化の数があります.いくつかのパラメータ
  • を定義します.
  • 関数は、入れ子可能な
  • です.
  • 開閉原則
  • Math.sqrt();開平方
  •  形参
  • 形式で演算に参加する値は、実参加位置
  • として機能します.
  • 実際に演算に参加した値
  • 実際に演算を行うには、モダリティの位置が必要です.
  • 等しいです.正常に
  • を実行します.
  • 実参加個数は形参より大きく、正常に実行され、多くの廃棄物は
  • を使わない.
  • モダリティが参より大きく、プログラムが間違っているかどうかを確認します.
     実際の参
     形の数と実の数は違います.
    a)  計算はNaNを得ることができます
    b)  実装値はundefinedです.  与えられた実参の形はundefinedです.
    c)  任意の値とundefined計算の両方のNaN
    1.4戻り値
  • 実行関数が完了したら、戻りデータ
  • 関数プログラムが実行された後、外で使用する必要がある場合、直接与えられません.returnを通じて
  • に戻ります.
  • 機能:関数実行が完了したら、結果は戻り値
  • です.
  • は、リターンの関数があります.逆に
  • はありません.
  • は、関数内部の値を外部
  • に与えます.
  • .  returnがない場合、またはreturnだけ値がない場合、関数はデフォルトでundefined
  • に戻ります.
  • 関数は、returnを実行したらすぐに終了します.returnの後のコードは
  • を実行しません.
  • 関数の戻り値は実行しなければなりません.
  • を得ることができます.
  • 外部でその値を使うなら、私達はどの値を返しますか?
  • リセットは、サイクル
  • を切断することができます.
  • Math.round()四捨五入
  • Math.pow(a,n)、aのn乗
  • Math.flor()、床関数
  • var s  =  Math.flor(Math.randow()*(max-min+1)+min)//min-max間の乱数
  • を生成する.
  • 関数内で使用される必要があるのは、モジュラスの配列
  • である.
  • bubble  発泡
  • 発泡体のソート限界が発生すると問題が発生します.
     1     var arr = [4,435,234,1223,645,341,123,124,562];
     2     function bubble(arr) {
     3         for(var i=0;i){
     4              var flag = true;
     5             for(var j=0;j){
     6                if(arr[j]>arr[j+1]){
     7                  var temp = arr[j];
     8                  arr[j] = arr[j+1];
     9                  arr[j+1] = temp;
    10                    flag = false;
    11                }
    12             }
    13             if(flag){
    14                 break;
    15                 //        return(arr) ,         ,     ,       ,      
    16             }
    17         }
    18         return(arr);
    19     }
    20 //    console.log(bubble(arr))
    18.関数の計算による数は普通半製品で、二次加工が必要です.
    1.5関数名、関数体、関数のローディング問題
  • 印刷関数名は、関数全体を印刷したコード
  • と同じです.
  • 印刷実行関数は、印刷関数の戻り値
  • に等しい.
    a)  関数パッケージ関数は、まず内部関数を実行します.
    3. JSがロードするときは、関数名のみをロードし、関数体をロードしません.
    1.6変数のスコープ
       ローカル変数
  • ローカルのみアクセス可能な変数
  • 関数内部のvarで定義された変数
  • 関数が実行された後、局所変数が回収されます.
      グローバル変数(メンバー変数)
  • どこでもアクセスできる変数
  • は、関数の内部で変数を直接定義し、varを除いてグローバル変数として、関数が実行されなければ
  • を使用できません.
     
    1.7暗黙的なグローバル変数(このように書かないでください)
  • 一般的な存在関数の中の
  • a)  var a=b=c=1;/この場合、bとcはすべて暗黙的なグローバル変数です.
    b)  var a=1;b=2;c=1;/この場合、bとcはすべて暗黙的な集合体変数で、セミコロンは改行に相当します.
    c)  var a=1,b=2, c=1;/この場合、bとcは暗黙的なグローバル変数ではない.
    1.8事前解析:JS解像器
  • 文法エラーを確認してください.
  • 変数宣言アップグレード(変数名のみアップグレードし、変数値をアップグレードしない)
  • コンテンツをメモリにロードする
  • a)  オブジェクトをスタックにロード
    b)  単純なタイプをスタックにロード
  • functionで定義された関数の全体アップグレード
  • a)  関数内でも適用されます.
    b)  近くの原則
    5.  事前解析(全体的な昇格関数)と関数ローディング(関数名のみローディング)の違い
    6.  前解析:scriptタグ内の文法を確認し、関数宣言を向上させる.
    7.  関数のロード:関数をメモリにロードします.
    8.  解析してからロードする
          //        
    1
    function isPrime(n){ 2 for(i=2;i3 if (n%i == 0 ){ 4 return false; 5 } 6 } 7 return true; 8 } 9 confirm (isPrime(7));
          
     
     1         function fibonacci(n){
     2             if (n<3){
     3                 n=1;
     4                 return n;
     5             }else {
     6                 var k = 1, j = 1;
     7                 for (i = 3; i <= n; i++) {
     8                     j = j + k;
     9                     k = j - k;
    10                 }
    11                 return j;
    12             }
    13         }
     入力年月日を取得して、今年の何日目になりますか?
        console.log(getDay(2016,3,1));
        function getDay(year,month,day){
            var arr = [31,28,31,30,31,30,31,31,30,31,30,31];
            var sum = day;
            if(year%4==0 && year%100!==0 || year%400==0){
                arr[1]=29;
            }
            for(var i=0;i){
                sum += arr[i];
            }
            return sum ;
        }
     
     
     
     
     
     
    転載先:https://www.cnblogs.com/mingm/p/6590135.html