javascript变量的作用域
变量作用域:局部和全局
局部变量优先级别高于同名的全局变量
//声明一个全局变量 var scope="global"; function checkscope(){ //声明一个同名的局部变量 var scope="local"; //返回的是局部变量的值 return scope; } //=>"local" console.log(checkscope());
嵌套函数的作用域:
//全局变量 var scope="global scope"; function checkscope(){ //局部变量 var scope="local scope"; function nested(){ //嵌套内的局部变量 var scope="nested scope"; return scope; } return nested(); } //=>nested scope console.log(checkscope());
正常情况下,函数外无法读取函数内局部变量
function checkscope(){ //局部变量 var scope="local"; } // scope is not defined checkscope(); console.log(scope);
函数内部声明变量的时候,一定要使用var命令。如果不用的话,你实际上声明了一个全局变量!
function checkscope(){ //相当于全局变量 scope="global"; } // =>global checkscope(); console.log(scope);
如何从外部读取局部变量呢?正常情况下确实不行,但是可以变通一下,不是说函数内部的可以获得外部的变量嘛?那我们就在函数里加一个函数返回出去
function checkscope() { //局部变量 var scope = "local"; function getScope(){ return scope; } return getScope; } var result=checkscope(); // =>local console.log(result());
2024还活着,挺好的,向着星辰与深渊,加油,博客园不要倒下啊!