数据的作用域

65 阅读1分钟

1.js有两种作用域:全局作用域和函数作用域

  • 内部的作用域能访问外部,反之不行。访问时从内向外依次查找。
  • 如果在内部的作用域中访问了外部,则会产生闭包。。
  • 内部作用域能访问的外部,取决于函数定义的位置,和调用无关
var a = 1; // 全局作用域
function b() { // **函数声明**
 var d = 2 // 函数作用域
 console.log(a)
 }
 
var c = function(){ // 表达式函数
console.log(a)
}

2.作用域内定义的变量、函数声明会提升到作用域顶部

// var a // 相当于这样
console.log(a) // undefined
var a = 1;

练习题

var b=2;
var a=1;
function qwe(){
    console.log(a)
    function asd(){
        var a =3
        console.log(a,b)
    }
    asd()
}
qwe()
//1\3\2