@songying
2018-10-10T18:05:49.000000Z
字数 863
阅读 1130
JavaScript
var
let: 块级别
您可以在一条语句中声明很多变量。用逗号分隔变量即可
var val_name = value;
var name="Gates", age=56, job="CEO";
如果重新声明 JavaScript 变量,该变量的值不会丢失:
var carname="Volvo";
var carname; //此时的变量值依旧为Volvo
在 JavaScript 函数内部声明的变量(使用 var)是局部变量,所以只能在函数内部访问它。
局部变量会在函数运行以后被删除。
在函数外声明的变量是全局变量,网页上的所有脚本和函数都能访问它。全局变量会在页面关闭后被删除。
实际上,JavaScript默认有一个全局对象window,全局作用域的变量实际上被绑定到window的一个属性。
JavaScript实际上只有一个全局作用域。任何变量(函数也视为变量),如果没有在当前函数作用域中找到,就会继续往上查找,最后如果在全局作用域中也没有找到,则报ReferenceError错误。
JS 中, for循环等语句块中是无法定义具有局部作用域的变量的, 对于块级别的变量,我们需要采用let
for (let i=0; i<100; i++)
JavaScript的函数定义有个特点,它会先扫描整个函数体的语句,把所有申明的变量“提升”到函数顶部,但是JS会自动提升变量的声明, 但不会提升变量的赋值。
** 在函数内部定义变量时,请严格遵守“在函数内部首先声明所有变量**
全局变量会绑定到window上,不同的JavaScript文件如果使用了相同的全局变量,或者定义了相同名字的顶层函数,都会造成命名冲突,并且很难被发现。减少冲突的一个方法是把自己的所有变量和函数全部绑定到一个全局变量中。
// 唯一的全局变量MYAPP:
var MYAPP = {};
// 其他变量:
MYAPP.name = 'myapp';
const PI = 31