深入研究JScript语法——常量和变量

发表于:2007-06-21来源:作者:点击数: 标签:
例子: 前面的例子中: return"fontcolor=gray"+hit+"/font" 使用了变量和常量,"fontcolor=gray"和"/font"是文本常量,hit是变量。 加号(+)则将三者加成一个文本:"fontcolor=gray100/font",如果hit为100的话。 数值常量 这个很简单,上过数学课的都应该知

   
  例子:

前面的例子中:

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='隐藏' onclick="mytext.style.display='none'">

 

变量定义

    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,则原先的全局变量的值就被破坏了,这就可能引起其实使用
该全局变量的程序出错!因此强烈建议大家都明确定义变量,而且尽量少使用全局变量。

原文转自:http://www.ltesting.net