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
谢谢大家阅读,欢迎评论区讨论。