---------------------- Windows Phone 7手機開發 、.NET教育訓練、期待與您交流!----------------------
1.JavaScript
是一種在浏覽器端執行的語言。
JS 是解釋型語言,無需編譯就可以随時運作,即使有文法錯誤,沒有文法錯誤的部分還能正确運作。
2.JS 開發環境
3.JS入門
<script type="text/javascript" >
alert(new Date().toLocaleDateString());
</script>
放到<head>中的<script>在body加載之前就已經運作了。
在<head>中和<body>中,<script>可以寫多次
html頁面從上往下執行。
<!--引用公共的JS檔案,就像C#中的添加引用-->
<script src="common.js" type="text/javascript" ></script>
4.事件
<a href ="javascript:alert('Hello')">點選</a>
<a href ="1.htm" οnclick="alert('Hello2')">點點</a>
隻有在超連結的 href 中的 javascript中才需要加“javascript”,因為它不是事件,而是把“Javascript”看成像“http:”,"ftp:","thunder://","ed2k://","mailto:"一樣的網絡協定
交由js解析引擎處理,隻有href中是一個特例。
button的onclick事件:
<input type="button" value="點" οnclick="alert('點我啊!')" />
5.JS 的變量
javascript 中即可雙引号,單引号聲明變量
Javascript中有null,undefined兩種,null 表示變量的值為空,undefined 則表示變量還沒有指向任何對象,未初始化。
<script type="text/javascript">
var i=10;//聲明一個變量,名字為i,指向10 這個整數 ,一旦指向10,i就是int 類型了。
i="abc";//嫁雞随雞嫁狗随狗,制定類型之後,還可以再變
alert(i);
</script>
6.JS 排錯與調試
IE調試選項要打開,Internet選項/進階,去掉“禁用腳本調試”前的勾選
以調試方式運作頁面
設定斷點,監視變量等操作和C#一樣
7.判斷變量初始化
JS中判斷一個變量是否為空,是否已經初始化的三種方法:
(1) var x;
if(x==null);
{ alert("null");}
(2) if(tyeof(x)=="undefined")
{ alert('undefined');}
(3)if(!x) //推薦用這種寫法
{alert('不 x ');}
if(x){} 變量被初始化了或者變量不為空或者變量不為0
8.函數的聲明
Javascript中聲明函數的方式:(沒有傳回值類型,沒有參數類型)
function add(i1,i2){
return i1+i2;
}
注意格式
<script type ="text/javascript" >
function add(i1,i2){
return i1+i2;
}
var i3=add(1,2);
alert(i3);
</script>
注:函數的使用可以放在聲明的前後,都可以。
沒有傳回值的話,就是undefined
9.匿名函數
var f1=function(i1,i2){
return i1+i2;
}
alert(f1(i1,i2));
說明:聲明一個函數,用f1委托指向它,後面在調用f1.把f1當做函數在用
少見可行的用法:(直接聲明一個匿名函數,立即使用)
alert(function (i1,i2){return i1+i2;} (10,10));
10.JS面向對象基礎
JavaScript中沒有類的文法,是用函數閉包(closure)模拟出來的。(類不是類,是對象)
<script type="text/javascript" >
function Person(name,age){ //聲明一個函數,當成類用
this.Name=name;
this.Age=age;
this.SayHello=function(){alert("你好,我是"+this.Name +",我"+this.Age+"歲了!")};
//動态聲明SayHello方法,指向匿名函數
}
var p1=new Person("tom",20);
p1.SayHello();
</script>
11.Array對象
在Javascript中,array是一個動态數組,無需預先定義大小,是動态的
求一個數組中的最大值:
function GetMax(arr){
var max=arr[0];
for(var i=1;i<arr.length;i++){
if(arr[i]>max){
max=arr[i];
}
}
return max;
}
var arr1=new Array();
arr1[0]=3;
arr1[1]=2;
arr1[2]=5;
alert (GetMax(arr1));
字元串之間用 “|”隔開:
function myjoin(arr){
if(arr.length<=0){
return "";
}
var s=arr[0];
for(var i=1;i<arr.length;i++){
s=s+"|"+arr[i];
}
return s;
}
var arr=new Array();
arr[0]="tom";
arr[1]="jerry";
arr[2]="lily";
alert(myjoin(arr));
數組反向輸出:
function myReverse(arr){
var temp;
for(var i=0;i<arr.length/2;i++){
temp=arr[i];
arr[i]=arr[arr.length-i-1];
arr[arr.length-i-1]=temp;
}
}
var arr2=new Array();
arr2[0]="3";
arr2[1]="a";
arr2[2]="8";
arr2[3]="haha";
alert(arr2);
myReverse(arr2);
alert(arr2);
12.JS中Dictionary
Array,不僅是一個數組,還是一個Dictionary,還是一個Stack。
var dict=new Array();
dict["人"]="ren";
dict["口"]="kou";
dict["手"]="shou";
alert(dict["口"]); //根據 key ,來取value
for(var k in dict){ //JS中沒有foreach,通過for的文法,周遊key
alert(k);
}
13.Array 的簡化聲明
1)普通數組初始化:
var arr=[3,5,6,8,3,2];
2)字典風格的簡化建立方式:
var arr={"tom":30,"jim":20};
14.數組,for及其他
//獲得對象所有的成員,為什麼可以獲得呢?對象的成員就是以對象的key的形式出現的
for(var e in document){
alert(e);
}
---------------------- Windows Phone 7手機開發 、.NET教育訓練、期待與您交流!----------------------
詳細請檢視:http://edu.csdn.net/heima/