// ------------------------------------------------
如下:变量在当前环境now 内部环境f1 内部深层环境f2 f3…都起作用的现象形成了一个链条
这个链条就成为作用域链
// 变量 banji的访问就可以看做一条作用域链
var banji="php0609";
console.log('班号:'+banji);
function f1(){
console.log('f1:'+banji);// 能访问到班级 banji变量为全局变量 可以访问到
function f2(){
console.log('f2:'+banji);
function f3(){
console.log('f3:'+banji);
}
f3();//能访问
}
f2();//能访问
}
f1();//能访问
// ------------------------------------------------
// 变量必须先声明后使用 (函数由于有 “预加载 ” 可以不遵循此规则)
// 同名变量和函数同时存在的情况
// var subject="php"; //2
// console.log(subject);
// subject();//3
// function subject(){ //1 数字表示顺序
// console.log("function sub ");
// }
// ------------------------------------------------
// 内部环境可以访问外部环境的变量 反之不然
var week="Sunday";
function fff1(){
console.log('星期:'+week);
}
function fff2()
{
var week="monday"; //只能给fff2使用和访问 他是个局部变量
fff1(); //fff1无论在任何地方调用 就只能访问到Sunday的信息
}
fff2(); //Sunday 这是两个函数的共同环境
// -------------------------------------------------
var sub="123";
function t1(){
console.log("科目:"+sub);
}
t1();
sub="345";
t1();
</script>
```
作用 内部环境可以访问外部环境的变量 反之不然
变量的作用域是声明是决定的,而不是运行时
环境的定义: 每个函数内部都是一个环境 最外边是一个全局环境
两种类型的环境 : 函数环境 和外部环境
-->
// ------------------------------------------------
// 变量 banji的访问就可以看做一条作用域链
var banji="php0609";
console.log('班号:'+banji);
function f1(){
console.log('f1:'+banji);// 能访问到班级 banji变量为全局变量 可以访问到
function f2(){
console.log('f2:'+banji);
function f3(){
console.log('f3:'+banji);
}
f3();//能访问
}
f2();//能访问
}
f1();//能访问
// ------------------------------------------------
// 变量必须先声明后使用 (函数由于有 “预加载 ” 可以不遵循此规则)
// 同名变量和函数同时存在的情况
// var subject="php"; //2
// console.log(subject);
// subject();//3
// function subject(){ //1 数字表示顺序
// console.log("function sub ");
// }
// ------------------------------------------------
// 内部环境可以访问外部环境的变量 反之不然
var week="Sunday";
function fff1(){
console.log('星期:'+week);
}
function fff2()
{
var week="monday"; //只能给fff2使用和访问 他是个局部变量
fff1(); //fff1无论在任何地方调用 就只能访问到Sunday的信息
}
fff2(); //Sunday 这是两个函数的共同环境
// -------------------------------------------------
var sub="123";
function t1(){
console.log("科目:"+sub);
}
t1();
sub="345";
t1();
</script>