a = 1相当于window.a = 1,是动态地为window添加一个成员; 
var a = 1是在当前作用域(也就是window)下声明一个a,这个声明是在整个作用域内都有效的。 

换句话说,其实区别就在于var a = 1比a = 1多了一个声明的行为。

 

var a = 1

声明的话:

console.log(a);----undefined
var a=1;------已经声明,但是顺序问题 

a=1::

例子:

console.log(a);----a is not defined
a=1;

但是区别于函数定义:

 对于函数声明:

a()

function a(){

}

js解析器会优先读取,确保在所有代码执行之前声明已经被解析,

而函数表达式:

a();

var a = function(){

}同定义其它基本类型的变量一样:a此时处于undefined,所以a()会报错,这个时候与顺序有关

posted on 2015-09-23 15:18  前端小菜j  阅读(645)  评论(0编辑  收藏  举报