我这边打断点调试发现age的值并不是finally中赋的值而是fn函数return的值,请问这是怎么回事?
let age = 66
function fn() {
try {
console.log('try')
age = 'try ' + age
return age
}finally {
age = 'finally ' + age // 变量age被赋值成了 'finally 66'
console.log('finally')
}
}
age = fn()
console.log('age: ', age) // 'age: try 66'
函数内先将变量age
赋值成try 66
然后执行finally
中的代码age
又被赋值成了finally 66
但是age
又被赋值成了try 66
请问为什么后面age
又会被赋值成try 66
?
每个
age
的赋值情况如下