javascript-變量提高

變量提高(Hoisting)被認爲是, Javascript中執行上下文 (特別是建立和執行階段)工做方式的一種認識。
須要注意的是,變量提高並非物理上層面上的把代碼移動到最前面。而是變量和函數聲明在代碼裏面的位置不會動,在編譯階段被放入內存中。函數

// 正確的方式:先聲明函數,在調用函數編碼

function speaker(value){         
console.log(value);
 }     speaker('變量提高');//變量提高

咱們正確的編碼方式就是先聲明,後調用,不過在Javascript中,先調用,後聲明也是能夠的code

// 先調用,後聲明ip

speaker('變量提高');//變量提高     
 function speaker(value){
    console.log(value);     
  }

先調用,後聲明之因此仍然能夠正常運行,這是由於在JavaScript中執行上下文的工做方式形成的。內存

變量提高也適用於其餘類型和變量。變量能夠在聲明以前進行初始化和使用。可是若是沒有初始化,就不能使用它們。io

//變量初始化在聲明以前console

a = 6;     
var a;        
console.log(a)//6

JavaScript 僅提高聲明,而不提高初始化。若是你先使用的變量,再聲明並初始化它,變量的值將是 undefined。編譯

var x = 1; // 聲明 + 初始化                
x console.log(x + " " + y); //'1 undefined'
var y = 2; // 聲明 + 初始化 y

//上面的代碼和下面的代碼是同樣的function

var x = 1;                 // 聲明 + 初始化 x 
 var y;  //聲明 y   
 console.log(x + " " + y);  //y 是未定義的 
 y = 2; // 初始化  y
相關文章
相關標籤/搜索