一句话概括:在函数外声明的变量都为全局变量,在函数内声明的为局部变量. 一.局部变量和全局变量重名会覆盖全局变量 var a = 1; function test1() { var a = 2; alert(a); } test1();// 2 这里的函数中的定义的a是局部变量,它的作用域为函数{}之间,函数外定义的a为全局变量,它的作用域为整个程序(描述有点不准确).在函数中的局部变量和全局变量重名,局部变量会覆盖全局变量. 二.提到全局变量与局部变量不得不说明的一个知识点就是变量提升.JS引…
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…
js中var用与不用的区别 Javascript声明变量的时候,虽然用var关键字声明和不用关键字声明,很多时候运行并没有问题,但是这两种方式还是有区别的.可以正常运行的代码并不代表是合适的代码. var num = 1: 是在当前域中声明变量. 如果在方法中声明,则为局部变量(local variable):如果是在全局域中声明,则为全局变量. 而 num = 1: 事实上是对属性赋值操作.首先,它会尝试在当前作用域链(如在方法中声明,则当前作用域链代表全局作用域和方法局部作用域etc...)…