JavaScript原名叫LiveScript,后来加入了Java的一些语法,改名为JavaScript,与Java没有一点关系。它是一种浏览器前端脚本语言,执行在浏览器端。
在进行一些与服务端无关的控制时可以用它,可以减少网络流量。
JavaScript的脚本我们常写在head头中或写在一个文件中,并在html的头中调用。
一、JavaScript是一种弱类型语言,不用指定它的变量的具体类型,与所付的值的类型相同,但string,Array等不是高级语言所说的引用类型,而是一个实例或叫对象。它的变量声明为:
<script type="text/javascript"> var tmpvalue = 25; alert(tmpvalue); tmpvalue = "test"; alert(tmpvalue); </script>
二、函数。 它的声明类型为 function 名称(参数...){函数体}
<script type="text/javascript"> function GetValue(value) { return "the value: " + value; } alert(GetValue("myvalue")); </script>
三、匿名函数。 即可函数做为一个参数进行调用。如下代码:
<script type="text/javascript"> /* function GetValue(value) { return "the value: " + value; } alert(GetValue()); */ var f = function (name) { return "The name is: " + name; }; alert(f("你好")); alert(function (Age) {return "The Age: "+Age}(22)); </script>
后一种方法不建议使用,会使人头晕。
四、变量的初始化
javaScript中有两种类型来检测是否有初始化,一个为null,另一个为undefined.
null代表为一个空值,但与我们高级语言中的Null又有些不一样,不全是Null.
nudefined表示此变量没有指定值,相当于高级语言中的Null,就像上面(二、函数)那部分,如果你在调用GetValue时这样写:alert(GetValue()), 网页会显示的结果为: the value: undefined.
五、闭包,相当于我们高级语言中的“类”。(JavaScript中没有类这一说法。)
可以把函数当成我们所用的类的一种来操作,如它的属性,它的构造函数等,如下:
<script type="text/javascript"> function Person(name, age) { //Name和Age相当于类的属性 this.Name = name; this.Age = age; //Indroduce相当于类的方法 this.Indroduce = function () { return "The person : " + this.Name + "'s age is " + this.Age; }; } var p = new Person("小王", 20); alert(p.Indroduce()); </script>
六.数组、字典及stack
在JavaScript中没有高级语言中的动态或静态数组之称。它就一个Array类型的东西,可随意指定它的大小,也可以用于dictionary或stack
如下:声明一个数组:
<script type="text/javascript"> var myarr = new Array(); myarr[0] = "aa"; myarr[1] = "bb"; .... </script>
dictionary:
<script type="text/javascript"> var myarr = new Array(); myarr["名称"] = "aa"; myarr["住址"] = "bb"; myarr["单位"] = "cc"; alert(myarr["名称"]); alert(myarr.名称); </script>
用stack时可以用到pop,push等方法。
也可以用简单的方法进行声明:
<script type="text/javascript"> var myarr = [1, 2, 3]; var mystr = { "名称": "你好", "地址": "XXXXX", "单位": "水电房" }; alert(mystr["单位"]); </script>
七、for循环语句
<script type="text/javascript"> var myarr = [1, 2, 3]; var mystr = { "名称": "你好", "地址": "XXXXX", "单位": "水电房" }; alert(mystr["单位"]); for (var i = 0; i < myarr.length; i++) alert(myarr[i]); for(var k in mystr) alert(k); //显示名称、地址等,说明string只是一个对象,并不像高级语言中的foreach for (var k in mystr) alert(mystr[k]); //显示对应的内容 </script>
八、JavaScript的一些调用常识
JavaScript通常是放在Html的Header部分,或用文件被调入。调用方法如下:
<html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> <script type="text/javascript"> var myarr = [1, 2, 3]; var mystr = { "名称": "你好", "地址": "XXXXX", "单位": "水电房" }; alert(mystr["单位"]); for (var i = 0; i < myarr.length; i++) alert(myarr[i]); for(var k in mystr) alert(k); //显示名称、地址等,说明string只是一个对象,并不像高级语言中的foreach for (var k in mystr) alert(mystr[k]); //显示对应的内容 </script> </head> <body> <form id="form1" runat="server"> <div> </div> </form> </body> </html>
上面为直接写在header中,html的执行顺序也是从上到下的。下图为用文件来调用。我们在文件中写入一个函数,然后再调用此文件,再用button的onclick来调用此函数,如下图:
JScript1.js为js的文件,它的内容为:
function GetTheAddress(addr) {
return addr;
}
以下为调用过程:
<html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> <script src="JScript1.js" type="text/javascript"> </script> </head> <body> <form id="form1" runat="server"> <div> <input id="Button1" type="button" value="button" onclick="JavaScript:alert(GetTheAddress('长安路112号'))" /></div> </form> </body> </html>
Alert是弹出对话框的意思。
要调入js文件,则用到src的属性。
JavaScript中的字符串可以为单引号也可以为双引号,如上图中的onclick事件中的东西。