javascriptの変数定義と運行メカニズム

1307 ワード

定義と実行は2つの概念である.全部「=」で操作しますが.
ただし、定義時にはメモリに何も生成されていません.
実行時のみメモリにオブジェクトが生成されます.
定義だけで実行されていない場合、他の場所で実行されている関数参照の場合、undefinedメッセージが表示されます.
「=」操作子について:
1、宣言変数(直接量):
 var a = 10;
作用:直接量定義はすぐ実行されます.
2、宣言関数:
var fn = function(){
  return new Date().getTime();
}
役割:定義だけで実行しません.
fnの値はあります.ただし、fn内部の値はオブジェクトを生成していません.関数が動作しないからです.
どのように関数を実行しますか?fn()
また、
定義してすぐ実行できる書き方:
1、例えばalert()など、すぐに実行できる関数です.
2、(function(){}();
定義と運転の仕組み
==============================================================================================================================
関数内部で定義されている変数は、まず定義された部分を解析して実行します.
これはjavascriptのhoisting特性です.
a =20;
c = 0;
fnt = function(a,c){
   var d = function(){
        c = a + b;
        return c;
   }   
   var  b = 20;
   var a = 10; 
   console.log(d()); // 30
}
fnt(a,c);
//d   ,       ,            (          ),  30
a =20;
c = 0;
fnt = function(a,c){  
   var  b = 20;
    c = a + b;  
   var a = 10; 
   console.log(c); // 40
}
fnt(a,c);

//c     ,     , c=40;
--