1. 注意函数调用后会将100赋值给全局的a
var a = 10;
function fn() {
a = 100;
console.log("函数内的a:", a); //100
}
console.log("函数外的a:", a); //10
fn();
console.log("函数外的a:", a); //100
2.局部与全局的作用域区分
var a = 10;
function fn() {
var a = 100;
console.log(a); //100
}
fn();
console.log(a); //10
2.1 fn()内重新声明a将函数内部的a变成了局部函数
var a = 10;
function fn() {
、、
a = 100;
console.log(a);//100
var a = 1332;
}
fn();
console.log(a);//10
3.
var a = 10;
function fn(a) {
//var a;
console.log(a);//undefined
a = 100;
console.log(a);//100
}
fn(10);
console.log(a);//10
4. a=100,变量提升,但是没有var也没有赋值,所以报错
console.log(a); //err
a = 100;
console.log(a); //
function fn() {
a = 100;
console.log("我是函数里的a:", a); //
}
fn();
console.log("我是函数外的a:", a); //
5. a=b=10;会将b变成全局变量
var a = b = 10;
function fn() {
var a = b = 20;
console.log("函数内:", a, b); //20,20
}
fn();
console.log("函数外", a, b);//10,20
6. c()里没有a,往外找一层就找到全局的a
var a = 10;
function fn() {
var a = 100;
console.log("函数内:", a);//100
c(); //10
// function b() {
// var a = 1000;
// c();
// }
// b();
}
function c() {
console.log("c里面的a", a);
}
fn();
7.c()往外找一层,就找到局部的a=100;
var a = 10;
function fn() {
var a = 100;
console.log("函数内:", a); //100
c();
function c() {
console.log("c里面的a", a); //100
}
}
fn();
console.log("函数外:", a);//10
网友评论