JS

什麼是JavaScript
HTML只是描述網頁長相的標記語言,沒有計算 判斷能力,如果所有計算 判斷(比如判斷文本框是否爲空 判斷兩次密碼是否輸入

一直)都放到服務器端執行的話網站的頁面會非常慢、用起來也很難用,對服務器的壓力也很大,因此要求能在瀏覽器中執行一些

簡單的運算、判斷。JavaScript就是一種在瀏覽器端執行的語言。
JavaScript和Java沒直接的關係,唯一的關係就是JavaScript原名LiveScript,後來吸收了Java的一些特性,升級爲

JavaScript.JavaScript有時候被簡稱爲JS。
JavaScript是解釋性語言,無需編譯就可以隨時運行,這樣哪怕語法有錯誤,沒有語法錯誤的部分還是能正確執行。
JS的開發環境
VS中的JavaScript JQuery的自動完成功能:在VS2010中直接有,
VS2008需要安裝VisualStudio 2008SP1
http://www.microsoft.com/downloads/details.aspx?displaylnag=zh-cn&familyid=27673c47-b3b5-4c67-84e525b5ce61)

和VS90SP1-KB958502-x86
http://code.msdn.microsoft.com/KB988502/Release/ProjectReleases.aspx?Releaseld=1736不定會更強更好用。如果實在“.

”不出來也沒關係,不影響運行。
JS是非常靈活的動態語言,不像C#等靜態語言那樣嚴謹,開發工具中的JS完成功能只是一個輔助、建議,“.”出來的成員調用肯

能不能用,“.”不出來的成員也許也能調用,因此不要因爲“點不出來”而擔心代碼有問題。
VS2088的HTML編輯器中觸發JavaScript自動完成:Ctrl+j.
JS入門
<script type="text/javascript">
  alert(new Date().toLacaleDateString());
</script>
<script language="">已經不推薦使用。
JavaScript代碼放到<script>標籤中,script可以放到<head> <body>等任意位置,而且可以不止一個<script>標籤。alert函數

是彈出消息窗口,new Date()是創建一個Date類的對象,默認值是當前時間。
放到<head>中的<script>在body家在之前就已經運行了。
除了可以在頁面中聲明JavaScript以外,還可以將JavaScript寫到單獨的js文件中,然後再頁面中引入:<script src="test.js"

type="text/javascript"></script>.聲明到單獨的js文件的好處是多頁面也可以共享、減少網絡流量。
事件:
在超鏈接的點擊理執行JavaScript:
<a href="javascript:alert(88)">發發</a>
JavaScript中也有事件的概念,當按鈕被點擊的時候也可以執行JavaScript:
<input type="button" οnclick="alert(99)" value="久久">
只有超鏈接的href中的JavaScript中才需要加"javascript:",因爲它不是事件,而是把“javascript:”看成像"http:" "ftp:"

“thunder://” "ed2k://" "mailto:"一樣的網絡協議,交由js解析引擎處理。只有href中這是一個特例。
JS的變量
JavaScript中即可以使用雙引號聲明字符串,也可以使用單引號聲明字符串。主要是爲了方便和html集成,避免轉義符的麻煩。
JavaScript中有null undefined兩種 null表示變量的值爲空,undefined則表示變量還沒有指向任何的對象,未初始化。
JavaScript是弱類型,聲明變量的時候無法:int i = 0;只能通過var i = 0;聲明變量,和C#中的var不一樣,不是C#中那樣的類型推

斷。
JavaScript中也可以不用var聲明變量,直接用,這樣的變量是“全局變量”,因此除非確實想用全局變量,否則使用的時候最好

加上var.
JS是動態類型的,因此var i = 0;i ="abc";是合法的。
JS除錯於調試
如果JavaScript中的代碼有語法錯誤,瀏覽器會彈出報錯信息,查看報錯信息就能幫助排查錯誤。
JavaScript的調試,使用VS可以很方便的進行JavaScript的調試,調試時需要注意幾點:
IE的調試選項要打開,Internet選項-》高級,去掉“禁用腳本調試”前的勾選。
以調試方式運行網頁。
設置斷點 監視變量等操作和C#一樣。
//var i = 10; //聲明一個變量,名稱爲i,指向10這個整數,一旦指向10,就是int類型了。
        //i = 'abc'; //嫁雞隨雞嫁狗隨狗!
        //alert(i);
        //var i = 10;
        //i = i + 10;
        //i = j + 10;
        //alet(i);
判斷變量初始化
JavaScript中判斷變量 參數是否初始化的三種方法:
var x;
if(x == null){
  alert("null");
}
if(typeof(x) == "undefined"){
  alert("underfined");
}
if(!x){alert('不x');}
if(x){}//變量被初始化了或者變量不爲空或者變量不爲0
推薦用最後一種方法。
函數的聲明
JavaScript中聲明函數的方式:
function add(i1,i2){
  return i1+i2;
}
不需要聲明返回值類型、參數類型。函數定義以function開頭。
var r = add(1,2);
alert(r);
r=add("你好","tom");
alert(r);
JavaScript中不像C#中那樣要求所有路徑都有返回值
匿名函數
var f1 = function(i1,i2){
  return i1+i2;
}
alert(f1(1,2));
類似於C#中的匿名函數
這種匿名函數的用法在JQuery中的非常多。
JS面向對象基礎
JavaScript中沒有類的語法,是用函數閉包(closure)模擬出來的,下面講解的時候還是用C#中的類、構造函數的概念,JavaScript

中String、Date等“類”都被叫做“對象”,挺怪,方便初學者理解,不嚴謹。JavaScript中聲明類:(類不是類,是對象)
function Person(name,age){
  this.name = name;
  this.age = age;
  this.SayHello = funciton(){
    alert("你好,我是"+this.name+",我"+this.age+"歲了"); 
  }
}
var p1 = new Person("tom",20);
p1.SayHello();
必須要聲明類名,function Person(name,age)可以看做是聲明構造函數,Name Age這些屬性也是使用者動態添加了。
Array對象
JavaScript中的Array對象就是數組,首先是以個動態數組,而且是以個像C#中數組、ArrayList、Hashtable等的超強綜合體。
var names = new Array();
names[0] = "tom";
names[1] = "jerry";
names[2] = "lily";
for(var i = 0;I<names.length;i++){
  alert(names[i]);
}
無需預先制定大小,動態。
JS的Dictionary
JS中的Array是以個寶貝,不僅是一個數組,還是以個Dictionary,還是以個Stack.
var pinyins = new Array();
pinyins["人"] = "ren";
pinyins["口"] = "kou";
pinyins["手"] = "shou";
alert(pinyins["人"]);
alert(pinyins.人);
像Hashtable、Dictionary那樣用,而且像他們一樣效率高。
Array的簡化方式
Array還可以有簡化的創建方式
 var arr = [3,5,6,8,9];普通數組初始化
這種數組可以看做是pinyins["人"] = "人";的特例,也就是key爲0、1、2......
字典風格的簡化創建方式:
var arr = {"tom":1,"jin",2}
數組、for及其他
對於數組風格的Array來說,可以使用join方法拼接爲字符串
var arr=["tom","jin","lily"];
alert(arr.join("."));//JS中join是array的方法,不像.Net中是string的方法
for循環可以像C#中的foreach一樣用
for循環還可以獲得一個對象所有的成員
for(var e in document){
  alert(e);
}
有了它沒有文檔也可以進行開發。

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