类型、值和变量(三)

(一)变量声明

var i, sum, i = 0;

var i;

如果没有给变量赋初始值,这个变量的值为undefined;

可以重复声明变量;读取未声明变量会报错,但是非严格模式下,给一个未声明的变量赋值,js实际上会给全局对象创建一个同名属性,并它工作起来想正确的声明,但是并不完全一样。

(二)变量作用域

1. js中使用的是函数作用域:变量在声明它们的函数体以及这个函数体嵌套的任意函数内是有定义的,这意味着变量在声明之前甚至已经可用了

2. 在函数体内局部变量的优先级高于同名的全局变量

3. 声明提前:js函数里面的所有变量(但不涉及赋值)都被‘提前’至函数体的顶部声明,但是变量初始化留在原来的位置

4. 当使用var声明一个变量时,创建的这个属性是不可配置的,也就是说无法用delete运算符删除

5. 作用域链 (未完待续……)

posted @ 2015-09-17 19:04  mollybaby  阅读(159)  评论(0编辑  收藏  举报