下面这段代码在执行的时候, 打印的结果是1, Error: undefined;

function fn() {
    var x = y = 1;
}

fn(); console.log(y);
// 1; console.log(x); // Error: undefined;

怎样理解在函数中声明var x = y = 1后调用函数时, x是局部变量, y是全局变量

 

 

原因是这个函数在执行的时候, 是先执行的: y = 1; 因为这里的y在声明赋值时没有使用var, 因此会默认成为全局变量, 然后将一个全局变量的值赋值给一个局部变量x;

 其实际的执行过程如下: 

var y = 1;
function fn() {
    var x = y;
}

 

相关文章:

  • 2021-12-02
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-10-03
  • 2021-06-24
  • 2021-12-11
猜你喜欢
  • 2022-12-23
  • 2021-08-13
  • 2022-12-23
  • 2022-12-23
  • 2021-11-17
  • 2021-12-26
  • 2021-07-12
相关资源
相似解决方案