js|jscript|变量|语法
例子:
前面的例子中:
return "<font color=gray>"+hit+"</font>"
使用了变量和常量,"<font color=gray>"和"</font>"是文本常量,hit是变量。
加号(+)则将三者加成一个文本:"<font color=gray>100</font>",如果hit为100的话。
数值常量
这个很简单,上过数学课的都应该知道如何表示数字,JScript中没有任何特别。
123
0
-100
100.123
1E3 (1000)
都是合法的数字常量
文本常量
这个用的最多,因为经常要动态的生成HTML文本。常量必须用引号括起来:
"abc"
"123"
"文本常量"
都是合法的文本常量,为什么要用引号?完全没有编程经验的人可能会有些疑惑,其实很简单,
计算机需要把常量和变量区别开。
变量赋值
a = "abc"
变量a的值为"abc"了。为什么比较时要用==,为了和赋值区别开呀!
b = a + "123"
变量b的值为"abc123"了。如果常量不加引号如何和变量区别呢?
b = "a" + "123"
变量b的值为"a123"
那么如果文本中包含引号如何?比如如何表示:
<input type=button value="A A">
因为按钮的名称里有空格,那么必须用双引号括起来,如何表示这个文本常量?
JScript还可以使用单引号:
'<input type=button value="A A">'
在单引号中就可以直接使用双引号了。反过来在双引号括起来的常量里可以直接使用单引号。
"<input type=button value='A A'>"
那么当常量里两个引号都有该怎么办?这就需要使用转义符号反斜杠\
"abc'def\"ghi"
在常量中可以用“\"”来表示一个双引号。而且还有:
\r\n 表示回车
\\ 表示一个反斜杠
function myname(name){
if (name=="小青"){
document.write("<input type=button value='隐藏小青' onclick=\"mytext.style.display='none'\">")
}
else
document.write(name)
}
上面的函数,当输入name为“小青”时,输出:
<input type=button value='隐藏' >
变量定义
JScript中可以不预先定义变量就直接使用,但是这样往往会带来潜在问题,
所以建议大家使用变量前都先定义好。
变量有两种类型,定义在函数内部的为局部变量。
<script>
function myfunc(){
//变量定义使用var,下面定义了变量a
var a
//可以一次定义多个变量,用逗号分开
var i,j,k
//定义的时候还可以给变量赋初值
var a="acb"
var a=123,b="ddd"
}
</script>
局部变量只在函数内有效,离开函数该变量就不存在了。
如果定义在函数外则为全局变量:
<script>
//定义一个全局变量a
var a
</script>
该变量在所有函数内外都将有效,除非函数内定义了一个相同名称的变量
<script>
//定义全局变量a
var a=100
function myfunc(){
var a="abc"
//函数输出的是abc,函数内的变量屏蔽了同名全局变量
document.write(a)
}
</script>
如果不使用var来定义,那么变量是全局变量。因此如果你不明确定义变量在使用,
就可能误用了全局变量,比如:
<script>
//定义全局变量a
var a="dddd"
...
function myfunc(){
//函数内只想使用一个临时的变量保存返回结果
a=b+...
...
return a
}
</script>
那么一旦执行过myfunc,则原先的全局变量的值就被破坏了,这就可能引起其实使用
该全局变量的程序出错!因此强烈建议大家都明确定义变量,而且尽量少使用全局变量。