我是靠谱客的博主 大意音响,最近开发中收集的这篇文章主要介绍超易懂全局作用域 函数作用域 块级作用域一.全局作用域二,函数作用域三,块级作用域,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一.全局作用域

  • 变量的声明  直接在script中声明就是全局变量  与window属性挂钩
console.log(window.a);  //undefind  因为a提升到了顶部,赋值还在原位置,所以等于undefind 
var a = 1
console.log(window.a);  //1  window可省略
  • 注意:let const 不与window挂钩  指向undefind
  • 函数的声明
          foo()    //Function foo  函数提升到了顶部
          function foo(){
            console.log('Function foo');
          }
          foo()  //Function foo

         foo2()  //foo2 is not function 因为foo2提升到了顶部,赋值还在原位置所以等于undefind
          var foo2 = function(){
             console.log("Function foo2");
          }
         foo2() //Function foo2

二,函数作用域

  • 在函数内部声明的变量又叫局部变量
        (function(){
            --------直接声明函数---------
            asc()  //123456  直接声明函数会提升到函数作用域顶部
            function asc(){
                console.log("123456"); 
             }
            asc() //123456
             
            ----------赋值声明函数----------
            asc2() // asc2 is not function //因为asc2 提升到了函数作用域顶部 
            var asc2 = function(){
                console.log("123456789");  
            }
            asc2() // 123456789

          }())
  • 注意,如果变量提升和函数提升同时在的话 函数优先

三,块级作用域

  • 抛开let var const  在块内声明变量

   console.log(b);//b is not defined   
    {
        console.log(b);//b is not defined
        b = 3
        console.log(b); //3
    }
    console.log(b); // 3
  • 当抛开const var let 环境的时候  块内默认声明的变量必须执行完代码块的内容才会有效 window才会有b这个属性
  • 块级作用域变量的声明
        console.log(a);  //undefined 重新声明个var a = undefined
        {
            console.log(a);     //undefined  a提升到了块级作用域顶部 赋值留在原位置
            var a = 1
        }
        console.log(a); // 1   为全局a赋值
  • 块内定义的变量会被提升到全局 也会提升到块级作用域顶部 重新声明个关键次 赋值undefined,执行完块内变量后重新赋值 
  • 问题来了,下面一句代码很诧异
  console.log(a);  //undefind  
        {
           function a(){}
        }
  • 输出 undefined 还记得块内的默认变量吗?它如果这样子写会报错的,但是函数声明就不会,因为正如阮一峰老师那篇文章所说

 

最后

以上就是大意音响为你收集整理的超易懂全局作用域 函数作用域 块级作用域一.全局作用域二,函数作用域三,块级作用域的全部内容,希望文章能够帮你解决超易懂全局作用域 函数作用域 块级作用域一.全局作用域二,函数作用域三,块级作用域所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(56)

评论列表共有 0 条评论

立即
投稿
返回
顶部