js关于let使用的问题

let x = 1;
function foo( y = function() { x = 2; }) {  
var x;
    y();
}
foo();

这个函数执行到y的时候x会自动等于1
let x = 1;
function foo( y = function() { x = 2; }) {  
let x;
    y();
}
foo();

这块执行到y的时候x则是undefined

问题一:

为什么两次函数中的初始化x值不一样?这是var复用的上级let吗?

问题二:
这俩函数执行后最后结果都是2,为什么函数内的let修改会影响上级?请大神详细解释一下,这块看了半天没懂


MMTTMM
浏览 636回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript