var a = 20; //在函数外声明并赋值,第一个a是全局变量
function fn() {
var a = 10; //在函数内部使用var声明并赋值,第二个a是局部变量
console.log(a); //优先调用在函数内部的局部变量a的值10
}
fn(); //10
console.log(a); //因为没有提升问题,直接输出全局变量a的值20
//结果是 10 20
var a = 20; //在函数外声明并赋值,第一个a是全局变量
function fn() {
a = 10; //在函数内部没有使用var声明,那么在外面找到var关键词,然后在fn()函数内做赋值操作,第二个a是全局变量
console.log(a); //优先调用在函数内部的局部变量a,但是在函数内没有找到局部的,那么直接去函数外找全局的a,10
}
fn(); //10
console.log(a); //因为没有提升问题,直接输出全局变量a的值10
//结果是 10 10
var a = 20; //在函数外声明并赋值,第一个a是全局变量
function fn() {
console.log(a); //优先调用在函数内部的局部变量a,但是在函数内只有a的声明,在调用前无复制,所以是undefined
var a = 10; //在函数内部没有使用var声明,那么在外面找到var关键词,然后在fn()函数内做赋值操作,第二个a是全局变量
}
fn();
console.log(a); //因为没有提升问题,直接输出全局变量a的值2
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) | 黑马程序员IT技术论坛 X3.2 |