如果你不知道什么是作用域,建议你先看什么是作用域链,什么是原型链.这篇文章,因为这些内容都是有关联性的. 什么是自由变量? 如我在全局中定义了一个变量a,然后我在函数中使用了这个a,这个a就可以称之为自由变量,可以这样理解,凡是跨了自己的作用域的变量都叫自由变量. var a = "追梦子"; function b(){ console.log(a); //追梦子 } b(); 上面的这段代码中的变量a就是一个自由变量,因为在函数b执行到console.log(a)的时候,发现在函数中
JS全局变量是如何工作的? <script> const one = 1; var two = 2; </script> <script> // All scripts share the same top-level scope: console.log(one); // 1 console.log(two); // 2 // Not all declarations create properties of the global object: console.lo
一句话概括:在函数外声明的变量都为全局变量,在函数内声明的为局部变量. 一.局部变量和全局变量重名会覆盖全局变量 var a = 1; function test1() { var a = 2; alert(a); } test1();// 2 这里的函数中的定义的a是局部变量,它的作用域为函数{}之间,函数外定义的a为全局变量,它的作用域为整个程序(描述有点不准确).在函数中的局部变量和全局变量重名,局部变量会覆盖全局变量. 二.提到全局变量与局部变量不得不说明的一个知识点就是变量提升.JS引
<script> var i = 'yuanjianhang'; function myloveName() { alert(i); var i = 'guanxi'; } myloveName(); </script> 运行结果 undefined <script> var i = 'yuanjianhang'; function myloveName() { var i = 'guanxi'; alert(i); } myloveName(); </scrip