js高级-函数变量提升

var a = 10;

function f1(){

  console.log(a)  //undefined  函数变量提升了 函数执行之前想创建了函数的EC 把函数里面声明的变量初始化undefined  a先访问了f1内部的了

  var a = 19;  给局部变量赋值

  console.log(a)  19

}

f1();

 

// 面试题

1、

var a = 18;

function d(){

  console.log(a)  //undefined 内部变量a提升

  var a = {age:19}  

  console.log(a)  // {age:19}

}

d();

console.log(a)  //18

 

2、

if(!("a" in window)){  //"a" in window    true 因为 var a =9 变量提升了

  var a = 1;

}

console.log(a)  //undefined

 

3、

console.log(a)  //function a(){}

var a = 20;

console.log(a)  //20

function a(){

}

4、

f()

console.log(a)  // 报错未定义

console.log(b)  //9

console.log(c)  //9

function f(){

  var a = b = c = 9;  a局部变量 bc全局变量  var a= 9,b=9,c=9;定义三个局部变量

console.log(a)  //9

console.log(b)  //9

console.log(c)  //9

}

 

5、

f()

function f(){

  for(var k=0; k<10; k++){

    console.log(k)  //0-9

  }

  console.log(k)  //10

}

posted @ 2018-05-24 14:21  suanmei  阅读(83)  评论(0编辑  收藏  举报