码迷,mamicode.com
首页 > 其他好文 > 详细

作用域

时间:2020-02-21 17:56:26      阅读:51      评论:0      收藏:0      [点我收藏+]

标签:一个   变量   定义变量   function   提升   ++   test   循环   表示   

作用域

  • 变量作用域:一个变量的作用域就是代码中定义变量的区域。
    • 全局变量:在全局中定义的变量拥有全局作用域
    • 局部变量:在函数内部定义的变量为局部变量,具有局部作用域
局部变量的优先级高于全局变量,当全局变量与局部变量重名时,全局变量会被局部变量覆盖
var color='red'//声明一个全局变量

    function fun(){
        var color='yellow'//声明一个局部变量

        console.log(color)
    }

    fun()//yellow
  • 函数作用域:ES6之前由于JS中没有块级作用域,而是取代的使用了函数作用域。
    • 在函数中声明的变量都贝贝提升至函数体的顶部,即为“声明提前”(发生在JS预编译阶段)
    • 所有在函数中声明的变量在函数体中始终是可见的,这意味着变量在声明之前就可以使用它
    function test(){
          console.log(i)//undefined 表示定义但未赋值
          for (var i = 0; i < 10; i++) {
              console.log(i)//0 1 2 3 4 5 6 7 8 9 
          }
          console.log(i)//10
      }
      test()
    虽然看似变量i是在for循环时才被定义,实际上由于变量提前变量i在函数顶部就已经被定义,所以在整个函数体中都以访问i
  • 块级作用域:每一个花括号中的代码都有其对应的作用域,变量在声明它们的代码段之外不可见

作用域

标签:一个   变量   定义变量   function   提升   ++   test   循环   表示   

原文地址:https://www.cnblogs.com/qqinhappyhappy/p/12342098.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!