关于js中的作用域

js中的作用域 :代码变量的作用范围

分为全局作用域局部作用域

        全局作用域:直接编写在两个<script>标签之间  :

       

复制代码
<script>

var
num=95; //全局变量
console.log(num);
</script>
 
复制代码

      局部作用域(也可以称为函数作用域 :

function  fun(){
      var num=95;//局部变量
      

}    
console.log(num);

 

这两个的作用域的效率相比 :

 全局变量只有浏览器关闭的时候才会销毁,比较占内存资源

  局部变量 当我们程序执行完毕就会销毁 比较省内存资源

需要注意的几个点是:

     如果在函数内部 没有声明直接赋值的变量也属于全局变量(不过这种写法不建议大家取用  如下:

function fun(){
    var num1=10;
    num2=20;//是全局变量


}
fun(); console.log(num2);
//输出结果不是undefiened 而是20

  关于块级作用域:

     js是一个比较自由的语言

     在es5中是没有块级作用域的这个说法的

     es6中  已经新增了块级作用域

     关于块级作用域 举个例子:

     在java 中 在块级作用域中声明一个变量 外部是不能调用num的:

if(...){

   int num=1;
}

   还有这里要提一下作用域链

         大家写代码的时候会发现 如果声明变量冲突 会不知道最后执行哪一个

         自然 执行的时候会有一套自己的顺序 这个就被称为作用域链

        

复制代码
function fun(){
   var num=10;
   function Num(){
         var num=20;
         console.log(num);
     
}
Num(); }
fun();
//最后会执行子级函数中的变量 输出20
复制代码
  因为采取的是链式查找的方式来决取这个值 这种结构被称为作用域链 (一级一级向上寻找

        

posted @   yyyyyyyyyyyyy555555  阅读(17)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示