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
相关文章
相关标签/搜索