js变量
JavaScript声明变量可以用var声明,也可以不用var声明,两种声明变量的方式有什么区别呢?
注:此处暂不讨论 ES6
中的 let
和 const
JavaScript变量分为 局部变量 和 全局变量
简单理解:
在函数中用var声明的变量即为 局部变量
在函数外用var声明的变量即为 全局变量
但是,这里说的函数中和函数外也不是绝对的,看以下代码及分析:
// demo1
var a = 123; // 全局变量
var b = 456; // 全局变量
console.log(a); // 123
console.log(b); // 456
console.log(window.a); // 123
console.log(window.b); // 456
console.log(window); // 打印结果如下图
demo1 可以看到,不管是直接访问变量 a b 或是访问window对象的属性 a b 都能输出相同结果
// demo2
var a = 123; // 使用var声明
b = 456; // 不使用var声明
console.log(a); // 123
console.log(b