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修改會影響上級?請大神詳細解釋一下,這塊看了半天沒懂
js關于let使用的問題
MMTTMM
2018-07-09 11:14:24