在函数之外声明的Javascript变量,当前文档的任何代码都可以访问它,称之为全局变量;在函数内声明的变量,只允许函数范围内的代码访问它,称之为局部变量; Javascript没有语句块变量(即只在声明的语句块内有效)。
Javascript变量可以在变量声明之前就访问它,当代码访问未初始化的变量时,得到的结果是“undefined";当局部变量的名字与全局变量相同时,将会出现一个有趣的现象,在局部变量初始化之前访问,得到的不是全局变量的值,而同样是“undefined"。
/**
* Example 1
*/
console.log(x === undefined); // logs "true"
var x = 3;
/**
* Example 2
*/
// will return a value of undefined
var myvar = "my value";
(function() {
console.log(myvar); // undefined
var myvar = "local value";
})();