let num= 20 ;
function fn(){
num= 10 ; //局部变量来看,强烈不允许的书写
}
fn ();
cosole. log(num);
function fun(x,y){
//形参可以看做是函数的局部变量
cosole.log(x);
}
fun(1,2);
console.log(x) //错误的
有一种特殊情况是全局变量是那种?我们提倡吗?
➢局部变量或者块级变量没有let声明直接赋值的当全局变量看,我们强烈不提倡。
➢还有一种特殊情况,函数内部的形参可以当做局部变量看。
变量的访问原则
●只要是代码,就至少有一个作用域
●写在函数内部的局部作用域
●如果函数中还有函数,那么在这个作用域中就又可以诞生一个作用域
●访问原则:在能够访问到的情况下先局部,局部没有在找全局
案例一:
function f1() {
let num= 123
function f2() {
console.log( num )
}
f2()
}
let num = 456
f1()
结果是多少呢?
结果是123。
案例二:
let a = 1;
function fn1(){
let a = 2 ;
let b = '22'
fn2()
function fn2 () {
let a = 3;
fn3();
function fn3 (){
let a =4
console.log( ) //a的值
console.log() //b的值
}
}
}
a为4,b为22
谢谢大家阅读,欢迎评论区讨论。