1、 JavaScript是一种弱类型语言,在声明变量时,不需要指定变量的类型,变量的类型由赋给变量的值确定。
2、在JavaScript中,变量是使用关键字var声明的。
例如:var variableName;
提示:可以把变量看做存储数据的容器。
也可以在声明的同时为变量赋值,这叫做变量的初始化,也可以在稍后的脚本中为变量赋值。
可以同时声明和赋值的变量,如:var count = 20; //在声明变量count的同时,将数值20赋给了变量count。
也可以同时声明多个变量并且赋值,如: var name = “Hamber_Bao”,score = 100;
一条语句,一个变量。
提示:一个好的编程习惯是,在代码开始处,统一对需要的变量进行声明。
一条语句,多个变量.
3、在JavaScript中,允许不声明变量而直接使用,系统将会自动声明该变量。此方法容易出错,不推荐使用。
在计算机程序中,经常会声明无值的变量。未使用值来声明的变量,其值实际上是 undefined。
在执行过以下语句后,变量 carname 的值将是 undefined:
var carname;
重新声明 JavaScript 变量
如果重新声明 JavaScript 变量,该变量的值不会丢失:
在以下两条语句执行后,变量 carname 的值依然是 “Volvo”:
var carname=”Volvo”;
var carname;

不推荐使用未显式声明变量理由1:
JavaScript中,若尝试为未声明的变量赋值,JavaScript会自动隐式声明该变量。但隐式声明的变量总是会被创建为全局变量。
所以避免在使用局部变量的地方定义全局变量,我们应该在javaScript中定义变量最好都用关键字var定义。

不推荐使用未显式声明变量理由2:
会造成与内置函数名字相同而使用混乱的情况,从而引起javascript中变量类型让人陷入迷茫得不知所措的局面。
然后,我们再试试用var关键字声明后的结果。
var name = 8;
弹出结果是number。

原因:name如果没有var声明,它就是window这个对象的一个属性,它是一个字符串,表示窗口的名字。
解决办法:要使name这个名字作为变量名字,而不作为了window对象的属性来使用,只需在它前面加一个var声明它,

var声明的作用是把这个变量局部化,从而屏蔽高层中相同的名字。
为了防止在JavaScript中出现这样或那样的变量问题,大家在JavaScript中定义变量,一律使用Var关键字声明。
还有一点,JavaScript中的变量类型不是固定,它是随着赋值类型的变化而变化的。下面我们就证明了这一点:
var name = 8; //隐式声明变量name,并赋值8
alert(typeof(name)); //弹出变量name的类型
var name = “8”;
alert(typeof(name));
先后弹出number, string。类型发生了变化···说明javaScript中的变量的类型是动态的,这生动形象的说明了javascript变量就像一个存储容器,里面放什么由值决定。
总结:
1.陋习:1.没有类型2.重复声明3.隐式声明4.不声明直接赋值
2.正解:先声明,后读写;先赋值,后运算。