JavaScriptにおける知識点の詳細


簡単なデータタイプはundefined、null、bollan、numberとstringだけです.
typeof(undefined)もundefinedです.
typeof(null)はobjectに戻りますが、nullはobjectではなく、null値を持つ変数もobjectではありません.
typeof(NaN)とtypeof(Infinity)はいずれもNumberに戻ります.NaNが任意の数値計算に参加した結果はNaNであり、NaNである.NaN,Infinity/Infinity=NaN.
JavaScriptでは「==」は「全般」を表しています.つまりデータ値とデータタイプは同じでなければいけません.trueです.undefined==null、123==123はtrueですが、undefined==null、123==123はfalseです.
 
JavaScript関数は名前を命じる変数です.変数の種類はfunctionです.変数の値は私たちが作成した関数コードです.ですから、下の二つのコードはわずかな違いを除いて、内部は全く同じです.
定義式
   1: <script type="text/javascript">
   2:     function myfunc(){
   3:         alert("hello");
   4:     }
   5:     alert(typeof myfunc);
   6: </script>
変数式
   1: <script type="text/javascript">
   2:     var myfunc = function(){
   3:         alert("hello");
   4:     }
   5:     alert(typeof myfunc);
   6: </script>
細かい違いは、Javascriptがエンジンを実行するのは、プログラムを分析して実行するのではなく、一定の段階で分析して実行するのです.また、同じセグメントプログラムの分析実行では、定義式の関数文が抽出されて優先的に実行されます.関数定義が実行されてから、他の語句コードが順番に実行されます.つまり、2つの同じ関数名の定義式の関数は同じセグメントでは、最初の関数は2番目の関数によってカバーされますので、コードセグメント内のすべての関数を呼び出したところで実行されるのは、2番目の関数定義の文です.
   1: <script type="text/javascript">
   2:     var myfunc = function(){
   3:         alert("hello");
   4:     }
   5:     myfunc();
   6:     myfunc = function(){
   7:         alert('yeah');
   8:     }
   9:     myfunc();
  10: </script>
第一弾は「ハロー」、第二弾は「yeah」です.
   1: <script type="text/javascript">
   2:     function myfunc(){
   3:         alert("hello");
   4:     }
   5:     myfunc();
   6:     function myfunc(){
   7:         alert('yeah');
   8:     }
   9:     myfunc();
  10: </script>
二つとも「yeah」をはじきます.
   1: <script type="text/javascript">
   2:     function myfunc(){
   3:         alert("hello");
   4:     }
   5:     myfunc();
   6: </script>
   7: <script type="text/javascript">
   8:     function myfunc(){
   9:         alert('yeah');
  10:     }
  11:     myfunc();
  12: </script>
第一弾は「ハロー」、第二弾は「yeah」です.
 
JavaScriptの中のグローバル環境は一つの対象です.この対象はJavaScriptの運行環境のルートです.ブラウザのJavaScriptにとって、このルートの対象はwindowオブジェクトです.全体のJavaScriptにとって、windowオブジェクトは現在のスコープに相当します.
「var」は、「var」の識別子がないが、グローバルルートオブジェクトの属性である可能性があります.
コードの実行が関数に入ると、JavaScriptは現在のスコープのサブドメインとして新しいスコープを作成し、関数論理の実行を開始します.