javascript变量根据命名规范可以提高脚本的可读性,javascript变量的良好声明习惯也是提高开发效率的利器之一。
JavaScript是一种弱类型语言,在声明变量时,不需要指定变量的类型,变量的类型由赋给变量的值确定。
下面简单明地总结一下javascript变量声明的规范。
在JavaScript中,变量是使用关键字var声明的。
例如:var variableName;
提示:可以把变量看做存储数据的容器。
var 合法的变量名;
var是声明变量所使用的关键字,
“合法的变量名”是遵循JavaScript变量的命名规则的变量名(详细见上一篇:javascript变量之命名)。
也可以在声明的同时为变量赋值,这叫做变量的初始化,也可以在稍后的脚本中为变量赋值。
可以同时声明和赋值的变量,如:var count = 10; //在声明变量count的同时,将数值10赋给了变量count。
也可以同时声明多个变量并且赋值,如: var name = "Hamber_Bao",score = 100;
一条语句,一个变量。
<!DOCTYPE html>
<html>
<body>
<p>点击Button来创建变量,并显示结果。</p>
<button οnclick="myFunction()">Button</button>
<p id="demo"></p>
<script>
function myFunction()
{
<span style="color:#CC0000;">var carname="Volvo"; //声明并赋值
<span style="color:#000000;">document.getElementById("demo").innerHTML=carname;</span></span>
}
</script>
</body>
</html>
提示:一个好的编程习惯是,在代码开始处,统一对需要的变量进行声明。
一条语句,多个变量.
可以在一条语句中声明很多变量。该语句以 var 开头,并使用逗号分隔变量即可:
var name="Freedom", age=21, job="CodeFarmer";
声明也可横跨多行:
var name="Freedom", age=21, job="CodeFarmer";
在JavaScript中,允许不声明变量而直接使用,系统将会自动声明该变量。此方法容易出错,不推荐使用。
在计算机程序中,经常会声明无值的变量。未使用值来声明的变量,其值实际上是 undefined。
在执行过以下语句后,变量 carname 的值将是 undefined:
var carname;
重新声明 JavaScript 变量
如果重新声明 JavaScript 变量,该变量的值不会丢失:
在以下两条语句执行后,变量 carname 的值依然是 "Volvo":
var carname="Volvo"; var carname;
不推荐使用未显式声明变量理由1:
JavaScript中,若尝试为未声明的变量赋值,JavaScript会自动隐式声明该变量。但隐式声明的变量总是会被创建为全局变量。
<HTML>
<HEAD>
<TITLE>测试JavaScript变量</TITLE>
<Script language = "javascript" type = "text/javascript">
function Make()
{
a = 10; //显式声明变量a,并赋值10
var b = 20;
}
function UseA()
{
alert(a);
alert(b);
}
</Script>
</HEAD>
<BODY>
<Form name = "myForm" method = "post" action = "">
<input name = "test" type = "button" value = "测试" onClick = "Make(),UseA()">
</Form>
</BODY>
</HTML>
结果为弹出10,报错b未定义。
所以避免在使用局部变量的地方定义全局变量,我们应该在javaScript中定义变量最好都用关键字var定义。
不推荐使用未显式声明变量理由2:
会造成与内置函数名字相同而使用混乱的情况,从而引起javascript中变量类型让人陷入迷茫得不知所措的局面。
<HTML>
<HEAD>
<TITLE>测试javaScript变量</TITLE>
<Script language = "javascript" type = "text/javaScript">
name = 8; //隐式声明变量name,并赋值8
alert(typeof(name)); //弹出变量name的类型
</Script>
</HEAD>
</HTML>
弹出的结果为string。是不是有点纳闷?···为什么是string呢?我明明给的是8,number类型呀!
然后,我们再试试用var关键字声明后的结果。
var name = 8;
弹出结果是number。
原因:name如果没有var声明,它就是window这个对象的一个属性,它是一个字符串,表示窗口的名字。
解决办法:要使name这个名字作为变量名字,而不作为了window对象的属性来使用,只需在它前面加一个var声明它,var声明的作用是把这个变量局部化,从而屏蔽高层中相同的名字。
为了防止在JavaScript中出现这样或那样的变量问题,大家在JavaScript中定义变量,一律使用Var关键字声明。
还有一点,JavaScript中的变量类型不是固定,它是随着赋值类型的变化而变化的。下面我们就证明了这一点:
<HTML>
<HEAD>
<TITLE>测试javaScript变量</TITLE>
<Script language = "javascript" type = "text/javaScript">
var name = 8; //隐式声明变量name,并赋值8
alert(typeof(name)); //弹出变量name的类型 <pre name="code" class="html"> var name = "8";
alert(typeof(name));
</Script></HEAD></HTML>
先后弹出number, string。类型发生了变化···说明javaScript中的变量的类型是动态的,这生动形象的说明了javascript变量就像一个存储容器,里面放什么由值决定。
最后小结一下:
1.陋习:1.没有类型
2.重复声明
3.隐式声明
4.不声明直接赋值
2.正解:先声明,后读写;先赋值,后运算。