JavaScript_JavaScript


JavaScript概述

    JavaScript是基於對象和事件的腳本語言。

    特點:

    1、安全性(不允許直接訪問本地硬盤),它可以做的就是信息的動態交互;

    2、跨平臺性(只要是可以解釋JS的瀏覽器都可以執行,和平臺無關)。

JavaScript與Java不同

    1、JS是Netscape公司的產品,Java是Sun公司的產品;

    2、JS是基於對象,Java是面向對象;

    3、JS只需解釋就可以執行,Java需要先編譯成字節碼,再執行;

    4、JS是弱類型,Java是強類型;

    5、js是非嚴謹的,java是嚴謹的,javascript運行在網頁的客戶端。

JavaScript和Html的結合方式

    想要將其他代碼融入到html中,都是以標籤的形式。

    1、JS代碼存放在標籤對<script>…</script>中;

    2、使用script標籤中的src屬性引入一個js文件(方便後期維護、擴展);

    例如:<script src=”test.js” type=”text/javascript”></script>

    注:規範中script標籤中必須加入type屬性。

JavaScript語法

    每一種語言都有自己的語法規則,JS語法與Java很像,所以學習起來比較容易。JS中也一樣有變量、語句、函數、數組等常見的語言組成元素。

1、變量

    通過關鍵字var來定義,弱類型即不用指定具體的數據類型。

    例如:var x = 3;x=”abc”;

    注:JS中特殊的常量值:undefined,當變量沒有初始化就被使用,該變量的值就是undefined(未定義)。

2、語句(與Java語句格式相同)

    1、判斷語句(if語句)

        注:var x=3; if(x==4)//可以進行比較運算;if(x=4)//可以進行賦值運算,而且可以同樣進行判斷,不報錯。

    因爲在JS中0就是false,非0就是true(通常用1表示);所以if(x=4)結果爲true。

    2、選擇結構(switch語句)

    3、循環結構(while語句、do…while語句、for語句)

    JS特有的語句:with(對象){}:可以確定對象所使用的範圍。在範圍內,可以直接使用指定對象的屬性和行爲,而不用:對象. 形式調用。簡化了對象的操作。

    for(變量 in 對象):可以對變量的屬性以及行爲進行遍歷。

    注:不同的是,沒有具體數據類型的限制,使用時要注意。

JS的錯誤提示:在網頁的狀態欄左下角歎號提示!

代碼演示:九九乘法表

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>九九乘法表</title>

<style type="text/css">
table{
	width:600px;
	border-collapse:collapse;
	}
table td{
	border:#000099 1px solid
	}
</style>
</head>

<body>
	<script type="text/javascript">
		document.write("<table>");
		//相當於syso
		for(var x=1;x<=9;x++){
			document.write("<tr>");
			for(var y=1;y<=x;y++){
				document.write("<td>"+y+"*"+x+"="+x*y+"</td>");
			}
			document.write("</tr>");
		}
		document.write("</table>");
	</script>
</body>
</html>
效果圖:


3、函數

    一般函數:格式:function 函數名(形式參數…)

    {

        執行代碼;

        return 返回值;

    }

    函數時多條執行語句的封裝體,只有被調用纔會被執行;

    注意:調用有參數的函數,但沒有給其傳值,函數一樣可以運行,或者調用沒有參數的函數,給其傳值,該函數也一樣運行。簡單說:只要寫了函數名後面跟了一對小括號,該函數就會運行。其實,在函數中有一個參數數組對象(arguments),該對象將傳遞的參數都封裝在一個數組中。

    爲了增強閱讀性,最好按照規範,按照定義好的形式參數傳遞實際參數。

    動態函數:通過JS的內置對象Function實現。

    匿名函數: function(){…},通常在定義事件屬性的行爲時較爲常用。

    例如:window.onload = test;

    可以寫成匿名函數的形式:

    window.onload = function()

    {alert(“ok”);}

    匿名函數就是一種簡寫格式。

4、數組:方便操作多元素的容器,可以對其中的元素進行編號。

    特點:可以存儲任意元素,長度是可變的。

    格式:var arr = new Array();

        arr[0]= “hello” arr[1] = 123;

        var arr=[‘hello’,123,true,”abc”];

    通過遍歷即可對數組進行基本操作;

    for(varx=0;x<arr.length;x++){alert(arr[x]);}

代碼演示:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>javascript函數</title>
</head>

<body>

<script src="arraylool.js" type="text/javascript"> </script>

<script type="text/javascript">

var arr=[12,36,41,95,1,30];

//不用寫var 直接寫arr即可
function show(arr){
	for(var x=0;x<arr.length;x++){
	for(var y=x+1;y<arr.length;y++){
		if(arr[x]>arr[y]){
			var temp=arr[x];
			arr[x] = arr[y];
			arr[y] = temp;
		}
	}
	}
}

show(arr);
var str="";
function printArray(arr){
	for(var x=0;x<arr.length;x++){
		if(x!=arr.length-1)
			str+=arr[x]+",";
		else
			str+=arr[x];
	}
	return str;
}
printArray(arr);
var s=printArray;//函數也是一個對象
alert(str);
alert(s);

//動態函數
var show1= new Function("x","y","var sum=x+y;return sum;");
var sum = show1(1,3);
alert(sum);

//匿名函數,c常常用於事件驅動
var show2 = function(){
	alert("functiong run");
}
show2();

//可以通過函數來描述對象
/*function Person(){
	alert("person init");
}
var p = new Person();
p.name = "zhangsan";
p.age = 30;

p.chifan = function(){
	alert("eat....");
}
p.chifan();
*/
function Person(name,age){
	this.name = name;
	this.age = age;
}
var p = new Person("lisi",23);
alert(p.name+"....."+p.age);

function Student(name,age){
	this.name = name;
	this.age = age;
}

var stu = new Student("wangwa",32);

with(stu){
	alert(name+"............"+age);
}

for(s in stu){
	alert(s+"::"+stu[s]);
}

</script> 
</body>
</html>

5、自定義對象:JS除了已經提供的內置對象外,也可以自定義對象。

    例如:

    function Person()//很像java中的構造函數,P不一定要大寫。

    {

    }

    var p = new Person;

p.name = “zs”;

    p.age = 20;

    p.run = function()//定義成員函數

    {

    }

    或者:

    function Person(name,age){

        this.name= name;

        this.age= age;

    }

    var p = new Person(“lisi”,23);

6、Javascript中已定義好的一些對象,String、Math、Date、Array、Function。

    這些對象都有一個屬性叫做prototype原型,prototype可以獲取執行的對象引用,可以通過該引用給已有的對象賦予一些新的功能;那麼在使用該對象時,可以直接調用定義好的新功能。

    function getMax()

    {

        varmax = 0;

        for(varx=1;x<this.length;x++)

        {

            if(this[x]>this[max])

                max = x;

        }

        return this[max];

    }

    var arr = [3,4,5,6,7];

    arr.sort();//直接調用Array對象的sort對象的sort方法對數組進行排序,

    將getMax方法添加到Array對象中,Array.prototype.getMax = getMax;

    var x = arr.getMax();

    alert(“max = ”+x);

    var str = “abc”;

    str.subString(1,2);

    str.bold();//<b>str</b>

常見的全局方法:定義在Global對象中

parseInt(numstr,[radix]);//將數字格式的字符串轉成整數,如果指定了基數,那麼numstr就會按照執行基數進行轉換。

    var num = parseInt(“110”,2);//表示將”110”這個字符串會按照二進制進行轉換。

    alert(“num = ”+num);//num = 6;

    var x=6;

    alert(x.toString(2));//110,獲取6對應的二進制表現形式。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章