函数作用域

<script>
/*
*函数作用域
* - 调用函数时创建函数作用域,函数执行完毕以后,函数作用域销毁
* - 每调用一个函数就会创建一个新的函数作用域,他们之间是互相独立的*
* - 在函数作用域中可以访问到全局作用域的变量
* - 在全局作用域中无法访问到函数作用域的变量(声明)
* -当在函数作用域中操作一个变量时,它会先在自身作用域中寻找,如果有就直接使用
* 如果没有则向上一级作用域中寻找,直到找到全局作用域。 如果全局作用域中依然没有则会报错ReferenceError
*/
//创建一个变量
var a = 10;
function fun(){
var a = "我是函数中的变量a";
var b = 20;
console.log("a ="+a);
}
// fun();//显示
// console.log("b ="+b);//在函数中声明在全局中访问

/*
*若想再在函数中找全局中的a----输入window.a方可打印全局的a的值--使用window对象
*/



/*
*在函数作用域中也有声明提前的特性,
* 使用var关键词声明的变量,会在函数中所有的代码执行之前被声明

function fun3(){
var a;
console.log(a);

a = 35;//var a;a=35是未赋值的

}
fun3(); */

/*
*函数声明也会在函数中所有的代码执行之前执行、、相当于函数中的全局声明函数,,,,只是周期短fun3()调用完了就执行完了。但在全局中声明函数周期是script
*/

function fun3(){
fun4();
// console.log(a);

var a = 35;

function fun4() {
alert("I'm fun4");
}

}
fun3();

/*
*在函数中,不使用var声明的变量都会成为全局变量
*/
var c = 33;
function fun5(){
console.log("c ="+c);//函数中没有向上一级找var c = 33;
c = 10;
}
fun5();
//在全局输出c
console.log("c ="+c);//打印显示10




</script>
posted @   LiLime  阅读(28)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App
点击右上角即可分享
微信分享提示