JS作用域链

2020-12-29  本文已影响0人  lsj980Ya
全局变量和局部变量

如果在函数内定义变量时没有使用 var 相当于在函数外声明了一个全局变量,在函数内进行赋值

function f1() {
  num1 = 100;
  var num2 = 200;
}
f1()
console.log(nu1); //num1为100
console.log(num2);//num2 未定义
函数内外有同名的变量,优先使用内部变量
var num = 100;
function f1() {
  var num = 200;
  console.log(num);//200
}
f1();
函数内使用全局变量
var num = 100;
function f1() {
  num = 200;//这里的num就是全局变量
  console.log(num);//200
}
f1();
console.log(num);//200

最内层作用域在使用变量时,如果自己没有则向外层查找,如果外层没有则一直向外层查找直到找到一个变量为止,这种查找变量的值的链式方式(从内到外)称之为作用域链

上一篇 下一篇

猜你喜欢

热点阅读