function foo() {
var a = b = 10
// => 转成下面的两行代码
// var a = 10
// b = 10
}
foo()
console.log(a)//not defined报错
console.log(b)//10
var a=b=10转成var a=10;b=10
a保存在foo函数执行上下文的AO中,而b在foo函数中直接赋值就会将b默认当成全局变量赋值
因此在全局中打印a为not defined报错,b为10
function foo() {
var a = b = 10
// => 转成下面的两行代码
// var a = 10
// b = 10
}
foo()
console.log(a)//not defined报错
console.log(b)//10
var a=b=10转成var a=10;b=10
a保存在foo函数执行上下文的AO中,而b在foo函数中直接赋值就会将b默认当成全局变量赋值
因此在全局中打印a为not defined报错,b为10