javascript進級課程--第一章--関数


javascript進級課程--第一章--関数
 
 
学習のポイント
  • メモリ管理を理解する
  • は、大域関数の使用を把握する
  • .
     
     
    知識のポイント
    基本タイプと参照タイプ
  • 基本タイプの値は、undefined、NUll、Boolean、Number、Stringのようなタイプがそれぞれメモリに固定されたサイズ空間を占めています.例えば、数値型はメモリに8バイトを占めています.ブール値は1バイトしか占めていません.
  • 参照タイプ:オブジェクト、配列、関数.引用型メモリに占める空間は固定されていませんが、メモリアドレスのサイズは固定されていますので、実際にはデータのメモリアドレスが記憶されています.
  • 変数コピーの場合、基本タイプは値そのものをコピーし、参照タイプはアドレスをコピーします.基本タイプは参照タイプをコピーして
  • をコピーします.
  • 関数のパラメータは、値によって伝達される
  • である.
    実行環境とスコープ
  • は、変数または関数が他のデータにアクセスする権限を持つ環境定義を実行する.
  • グローバル実行環境は、最も周辺の実行環境であり、ウェブブラウザでは、グローバル実行環境はwindowオブジェクトであるため、すべてのグローバル変数の関数は、windowの属性と方法として作成される.
  • 変数は、関数内で宣言されていないか、または宣言されたときに、varを持っていないとグローバル変数です.グローバルスコープを持っています.windowオブジェクトのすべての属性はグローバルスコープを持っています.コードのどこにでもアクセスできます.関数内部で宣言され、varで修飾された変数は局所変数です.関数内でしか使用できません.関数のパラメータはvarを使用していませんが、まだ局所変数です.
  • 内部環境はすべての外部環境にアクセスできますが、外部環境は内部環境内の任意の変数と関数にアクセスできません.
  • は、変数のクエリーにおいて、グローバル変数よりもローカル変数にアクセスするのが速いです.
  • メモリ管理
    JSのメモリの割り当てと回収は自動的に行われます.メモリは使わない時に自動的に回収されます.
    プログラムが簡単であれば、メモリ管理はあなたに多くの迷惑をかけません.しかし、複雑なプログラムメモリ管理は重要です.この授業は私達の学習の任務はメモリ管理の概念と注意事項を理解するので、更に深い内容、学習の深さに従って1歩1歩理解します.
  • メモリのライフサイクルは、JS環境に割り当てられたメモリには次のようなライフサイクルがあります.
  • メモリ割り当て:変数、関数、オブジェクトを説明すると、システムが自動的に彼らのためにメモリを割り当てます.
  • メモリ使用:読み書きメモリ、すなわち変数、関数などを使用する
  • メモリの回収:使用済み、ゴミ回収によって使用されなくなったメモリ
  • を自動回収する.
  • ゴミ回収アルゴリズム:ゴミ回収アルゴリズムにとって、核心思想はどのようにメモリが使われなくなったかを判断することです.(了解)
  • JavaScriptのメモリ管理上の注意事項
  • は、大域変数の不必要な定義を避ける.変数が大域的な作用領域に定義されると、デフォルトではJavaScriptエンジンはそれを廃棄しない.このように変数は古い世代のメモリにずっと存在しています.ページが閉じられるまで.
  • 使用しない変数の参照を適時に解除し、nullとなります.メモリの回収周期では、メモリをすぐに回収するのではなく、ブラウザで時間ごとにチェックします.
  • 合理的な使用関数は、関数の局所変数関数の実行が終了すると自動的にメモリが解放されます.
  • …より多くのメモリ管理の技術は実例においてデモンストレーションされます.ここでしばらく調べてみます.
  • グローバル関数
    大域関数と属性は、すべての内部に構築されたJavaScriptオブジェクトに使用できます.大域関数はトップレベルの関数またはシステム関数とも呼ばれます.
  • パーrseInt()関数は、文字列を解析し、整数を返します.
  • パースFloat関数は、文字列を解析し、浮動小数点を返します.
  • isNaN関数は、そのパラメータが非数値値であるかどうかを確認するために使用される.
  • String関数は、オブジェクトの値を文字列に変換する.
  • Number()は、対象の値を数字に変換する.
  • eval関数は、ある文字列を計算し、JavaScriptコードを実行することができます.この方法はパラメータとして文字列だけを受け入れます.計算する文字列には計算するJavaScript表現または実行する語句が含まれていなければなりません.
  • escape()は文字列を符号化する.
  • は、値を返します.符号化されたstringのコピーです.一部の文字は16進数の変換シーケンスに置き換えられます.
  • この方法はASCII文字と数字を符号化しないし、次のようなASCII句読点も符号化しない.他のすべての文字は変換シーケンスに置き換えられます.
  • unescape()は、escape()によって符号化された文字列を復号する.
  • encodeURI()は文字列をURIとして符号化する.URI:Uniflom Resource Identifer、統一リソース識別子;
  • decodeURI()は、ある符号化URIを復号する.
  • デコードされたURIコンポーネント.
  • encodeURIComponent()は文字列をURIコンポーネントとして符号化する.
  • の3つの符号化方式の違い
  • escape符号化されていない文字は69文字あります.*,+,-,,/,@,_,0-9,a-z,A-Zは、主に特殊文字による計算ミスを防止するために
  • を適用します.
  • encodeURI符号化されていない文字は82文字あります.(,),*,+,,,,-,/,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0-9,a-z,A-Zは特殊文字列によるURIの転送エラーを防止し、ページジャンプの際に一般的に使用されます.
  • encodeURIComponentコード化されていない文字は71文字あります.(,),*,-,,,,,,,~,0-9,a-z,A-ZはURIパラメータ中の特殊文字列にパラメータの読み取りエラーが発生することを防止します.
  • isFinite()は、ある値が無限大の数かどうかを検査する.numberが有限数字(または有限数字に変換可能)であれば、trueに戻ります.そうでなければ、numberがNaN(数字ではない)、または正、負の無限大の数であれば、falseに戻ります.
  • Infinity無限大(システム定義定数)
  • -Infinity無限小(システム定義定数)
  •  
    コード
     1 DOCTYPE html>
     2 <html lang="zh-cn">
     3 <head>
     4     <meta charset="utf-8">
     5     <title>    title>
     6 head>
     7 <body>
     8 <script>
     9  //        
    10     var m= 123;
    11     var n = "JavaScript";
    12  //        
    13 //     var person = {
    14 //         age: 25,
    15 //         name: '  '
    16 //     };
    17 
    18 //     //        
    19 //     function sum(m, n) {
    20 //         return m+n;
    21 //     }
    22 
    23 // var str="x=10;y=20;alert(x*y)";
    24 //  alert(str)
    25 //  eval(str)
    26 
    27 var str='javascript      ';
    28 var str1=escape(str);
    29 var str2=unescape(str1)
    30 document.write(str+ "
    ") 31 document.write('str :'+str1+ "
    ") 32 document.write('str1 :'+str2+ "
    ") 33 script> 34 body> 35 html>