JavaScript是解釋型語言,無需編譯就可以隨時運行,這樣哪怕語法有錯誤,沒有語法錯誤的部分還是能正確運行。
1.JavaScript能做什么?
01, javaScript可以進行表單驗證
如果在服務器端進行驗證:1,會加重服務器負擔2,遠程傳輸帶來不必要的網絡流量。一般使用javaScript進行客戶端驗證。
02.使用javascript可以實現交互特效
2.javaScript中數據類型
Boolean(布爾)、Number(數字)、String(字符串)、Undefined(未定義)、Null(空對象)、Object(對象類型)
Undefined類型、Null類型都是只有一個值的數據類型,分別是undefined與null
查看變量的數據類型,使用typeof關鍵字
例如:typeof(10);//結果為Number,其他變量的類型您可以自己測試。
3.基本類型與引用類型區別(這個我們將在后續課程中講解)
String也是基本類型,不能為String添加動態屬性,而引用類型是可以的。
4.js中null與undefined區別
Undefined表示一個未知狀態:
在三種情況下,輸出結果為Undefined:
01, 方法沒有返回值
02, 變量聲明不賦初值也是undefined
03, 另外一種情況就是變量未聲明就使用也是undefined
Null表示尚未存在的對象
null是一個有特殊意義的值。可以為變量賦值為null,此時變量的值為“已知狀態,不是(undefined)”
Null用來初始化變量,清除變量內容,釋放內存。
注意:
Undefined==null;結果為true,但含義不同,因為undefined和null以及0在js中代表的值都是false,所以判定兩者相等。
Undefined===null;結果為false,對於“===”先判斷類型是否一致,然后判斷值是否相等。
如果想在IE中開啟腳本調試,可以打開工具→Internet選項→高級,然后將“禁用腳本調試”前的勾去掉確定即可。如下圖:

這里順便提一句:瀏覽器也有垃圾回收機制。
在js中判斷一個變量是否可用的方法:
01, if(typeof(x)!=’undefined’&&x!=null)
02, if(x)
說明:當x聲明但是沒有賦值,或x為null,或x為0是,都表示不可用,
If(x)返回false;
在確定x已經聲明的情況下,推薦使用后一種方法,單如果x有可能沒有聲明,則只能用typeof判斷(否則會報錯)
5.變量的作用域
在js中聲明變量的時候可以加var,也可以不加。
在聲明變量的時候如果加var,則在聲明范圍內有效
如果不加var,則認為是一個“全局變量”,在整個頁面內有效。
6.類型轉換
ParseInt()遇到第一個不是數字的字符,就省略之后的內容,將為數字的部分進行轉換。
例如:var x1=’34號人’;
Var x2=’1.23’;
Var x3=parseInt(x1)+parseInt(x2);
Alert(x3);//結果為35
判斷一個值是否為NaN不能用==或===,必須用函數isNaN(val)
parseFloat(arg)//將指定的字符串,轉換成浮點數
Number(arg):把給定的值(任意類型)轉換成數字(可以是整數或浮點數);轉換的是整個值,而不是 部分值。如果該字符串不能完全轉換為整型,則返回NaN。
isNaN(arg)//判斷arg是否為一個非數字(NaN),NaN與NaN也不相等。
String(arg)把給定的值(任意類型)轉換成字符串。
Boolean(arg):把給定的值(任意類型)轉換成Boolean型。
Eval(codeString):將一段字符串的js代碼,計算並執行。類似於動態SQL語句。
7.JS調試
使用VS和IE調試JS代碼的方法
l JavaScript的調試,使用VS可以很方便的進行JavaScript的調試,調試時需要注意幾點:
- 確保當前的默認瀏覽器為IE瀏覽器。
- 如果使用的是IE6,確保IE6的調試選項要打開,Internet選項→高級,去掉“禁用腳本調試”前的勾選。
- 設置斷點、監視變量等操作和C#一樣。
- 以調試方式運行網頁。F5
- IE8以后可以使用“開發人員工具”à“腳本調試”,可設斷點。
- FireBug(FireFox瀏覽器的“開發人員工具”,報錯比較准確。)、Chrome瀏覽器也有“開發人員工具”。(大多數瀏覽器的最新版本都有“開發人員工具”)
- 在高版本瀏覽器下也可以使用console.log(‘內容’);來輸出內容。
8.函數聲明
JavaScript中聲明函數的方式:(無需聲明返回值類型)
例如:
Function add(i1,i2){
Return i1+i2; //如果不寫return返回的是undefined
}
注意:在js中,自定義函數名不要和js內置、dom內置方法重名,比如selectAll、focus等函數名不要用。
9.arguments對象
首先我們先看下如下案例:
Function f1(){
Alert(‘first f1’);
}
Function f1(){
Alert(name);
}
F1();
結果輸出undefined.
解釋:js中方法不存在重載,如果方法重名的話,會以最后一個定義的為准。
