function fn() {
var a = 5;
console.log(a);
}
fn();
console.log(a);
// 5
// 报错 全局访问不了局部
var a = 1;
function fn(){
var a = 2;
console.log(a);
}
fn();
console.log(a);
// 2 就近原则
// 1
var a = 1;
function fn(){
a = 2; // 修改全局变量
console.log(a);
}
fn();
console.log(a);
// 2
// 2
var a = 10;
function fn(){
var a;
console.log(a);
a = 20;
console.log(a);
var a = 30;
}
fn();
console.log(a);
// undefined
// 20
// 10
var x = 10;
function f1(num){
return num++;
}
var y = f1(x);
console.log(x);
console.log(y);
// 10
// 10
var x = 10;
function f1(num){
return ++num;
}
var y = f1(x);
console.log(x);
console.log(y);
// 10
// 11
var a = 10;
function test(a){
a -= 3;
}
test(a);
console.log(a);
// 10
var a = 10;
function test(x){
x -=3;
}
test(a);
console.log(a);
// 10
console.log(b);
b = 10;
// b is not defined
一个变量没有使用var声明并赋值时,它就为全局变量,但因为没有var声明不会预解析,先使用会报错不认识
console.log(b);
var a = b = 0;
// b is not defined
如上题理