1.事件
在超連結的點擊裡執行JavaScript:<a href="javascript:alert('哈哈')">哈哈</a>
JavaScript中也有事件的概念,當按鈕被點擊的時候也可以執行
JavaScript:
• <input type="button" onclick="alert(99)" value="久久"/>
• 只有超連結的href中的JavaScript中才需要加“"javascript:”,因為它不是事件,而是把“"javascript:”看成像“http:”、“ftp:”、“thunder://”、“ed2k://”、"mailto:"一樣的網路通訊協定,交由js解析引擎處理。只有href中這是這是一個特例。
2.變數
(1)JavaScript中即可以使用雙引號聲明字串,也可以使用單引號聲明字串。主要是為了方便和html整合,避免轉義符的麻煩。
(2)JavaScript中有null、undefined兩種,null表示變數的值為空白,undefined則表示變數還沒有指向任何的對象,未初始化。兩者
的區別參考資料。
(3)JavaScript是弱類型,聲明變數的時候無法:int i=0;只能通過var i=0;聲明變數,和C#中的var不一樣,不是C#中那樣的類型
推斷。
(4)JavaScript中也可以不用var聲明變數,直接用,這樣的變數是“全域變數”,因此除非確實想用全域變數,否則使用的時候最好
加上var。
(5)JS是動態類型的,因此var i=0;i="abc";是合法的。
3.判斷變數初始化 隱藏行號 複製代碼 ? 這是一段程式碼。
<script type="text/javascript">
//alert(new Date().toLocaleDateString());
var x = 0;
if (x == null) {
alert("null");
}
if (typeof (x) == "undefined") {
alert('undefined');
}
if (!x) { alert('不x'); }
</script>
if(x){}//變數被初始化了或者變數不為空白或者變數不為0。推薦用最後一種方法。
4.函數的聲明
(1)JavaScript中聲明函數的方式:
function add(i1, i2) {
return i1 + i2;
}
int add(int i1,int i2)//C#寫法
(2)不需要聲明傳回值類型、參數類型。函數定義以function開頭。
var r = add(1, 2);
alert(r);
r = add("你好", "tom");
alert(r);
(3)JavaScript中不像C#中那樣要求所有路徑都有傳回值,沒有傳回值就是undefined。
(4)易錯:自訂函數名不要和js內建、dom內建方法重名,比如selectall、focus等函數名不要用。
5.匿名函數
var f1 = function(i1, i2) {
return i1 + i2;
}
alert(f1(1,2));
(1)類似於C#中的匿名函數。
(2)這種匿名函數的用法在JQuery中的非常多
(3)alert(function(i1, i2) { return i1 + i2; }(10,10));//直接聲明一個匿名函數,立即使用。用匿名函數省得定義一個用一次就不用的函數,而且免了命名衝突的問題,js中沒有命名空間的概念,因此很容易函數名字衝突。通過例子發現一旦命名衝突以最後聲明的准
(4)必須<script src="my1.js" type="text/javascript"></script>不能:<script src="my1.js" type="text/javascript"/>