DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> JavaScript基礎知識 >> JavaScript學習筆記記錄我的旅程
JavaScript學習筆記記錄我的旅程
編輯:JavaScript基礎知識     

1、什麼是JavaScript?
(1) HTML只是描述網頁長相的標記語言,沒有計算,判斷能力,如果所有計算,判斷(比如判斷文本框是否為空,判斷兩次密碼是否輸入一致)店鋪放到服務器端執行的話網頁的頁面會非常的慢,用起來也很難用,對服務器的壓力也很大,因此要求能在浏覽器中執行一些簡單的運算,判斷,JavaScript就是一種在浏覽器端執行的語言。
(2) JavaScript和Java沒有直接的關系,唯一的關系就是JavaScript原名LiveScript,後來吸取了Java的一些特性,升級為JavaScript,JavaScript有時被簡稱為JS。
(3) JavaScript是解釋性語言,無需編譯就可以隨時執行,這樣哪怕語法有錯誤,沒有語法錯誤的部分還是能夠正確的執行。
JS的開發環境
(1) VS中JavaScript,Jqery的自動完成功能。
(2) JS是非常靈活的動態語言,不像C#等靜態語言那樣嚴謹。
JS入門
(1)
復制代碼 代碼如下:
<script type="text/javascript">
alert(new Date().toLocaleDateString());
</script>

(2) JavaScript代碼放到<script>標簽中,<script>可以放到<head>,<body>等任意位置,而且可以有不止一個<script>標簽。alert函數是彈出消息窗口,new Date()是創建一個Date類的對象,默認值就是當前的時間。
(3) 放到<head>中的<script>在body加載之前就已經運行了,寫在body中的<script>是隨著頁面的加載而一個個的執行的。
(4) 除了可以再頁面中聲明JavaScript之外,還可以將JavaScript寫在單獨的JS文件中,然後在頁面中引入:<script src=”common.js” type=”text/javascript”></script>。聲明到單獨的JS文件的好處是多頁面也可以共享,減少網絡流量。
事件
(1) <a href="javascript:alert('Hello')">點擊我</a>
<a href="javascript:void(0)">我就不彈出東西</a><br />
<a href="JSoop.htm" onclick="alert('您確認你要跳轉嗎?')">單擊我</a>
(2) JavaScript中也有事件的概念,當按鈕被點擊的時候
1) <input type="button" value="單擊我" onclick="alert('終於單擊我了')" />
2) 只有超鏈接的href中的JavaScript中才需要”JavaScript:”,因為他不是事件,而是把”JavaScript:'看成像”http:”,”ftp:”,”thunder://”,ed2k://,mailto://一樣的網絡協議,交由JS解析引擎處理,只有href中這一個特列。
JS變量
(1) JavaScript中既可以使用雙引號聲明字符串,也可以使用單引號聲明字符串,主要是方便和HTML集成,避免轉義符的麻煩。
(2) var i=10; //聲明一個變量,名字為i,指向10這個整數,一旦指向10,i就是int類型, alert(i);
(3) JavaScript中有null,underfined兩種,null表示變量的值為空,underfined則表示變量還沒有指向任何的對象,未初始化。
(4) JavaScript是弱類型,表示變量的時候無法:int i=10.只能通過var i=10;聲明變量,和C#中的var不一樣,不是C#中的那樣的類型推斷。
(5) JavaScript中也可以不用var聲明變量,直接用,這樣的變量是”全局變量”,因此除非確實想用全局變量,否則使用的時候最好加上var。
(6) JS是動態類型的,因此var i=10;i=”abc”是合法的。
JavaScript
(1)
復制代碼 代碼如下:
var sum = 0;
for (var i = 0; i <= 100; i++) {
sum = sum + i;
}
alert(sum);

(2) 如果JavaScript中的代碼有語法錯誤,浏覽器會彈出報錯信息,查看報錯信息就能幫助排查錯誤。
(3) JavaScript的調試,使用VS可以很方便的進行JavaScript的調試,調試時需要注意幾點:
1) IE的調試選項要打開,Internet選項-高級,去掉”禁用腳本調試”前的勾選。
2) 以調試方式運行界面。
3) 設置斷點,監視變量等操作和C#一樣。
判斷變量初始化
(1) JavaScript中判斷變量,參數是否初始化的三種方法。
復制代碼 代碼如下:
var r;
if (r == null) { if (typeof (r) == "undefined") { if (!x) {
alert("null"); alert("undefined"); alert("不X");
}
}
}

注:推薦用最後一種方法
函數的聲明
(1) JavaScript中聲明函數的方法:
復制代碼 代碼如下:
function Add(i1, i2) {
return i1 + i2;
}

(2) 不需要聲明返回值類型,參數類型,函數定義以function開頭
復制代碼 代碼如下:
var r = Add(10, 20);
alert(r);
var r = Add("tom,", "您好");
alert(r);

(3) JavaScript中不像C#中那樣要求所有路徑都有返回值。
匿名函數
(1)
復制代碼 代碼如下:
var f1 = function sum(i1, i2) {
return i1 + i2;
}
alert(f1(10, 20));

(2) 類似於C#中的匿名函數。
(3) 這種匿名的用法在Jquery中用法特別多。
(4)
復制代碼 代碼如下:
alert(function sum(i1, i2) {
return i1 + i2;
} (100, 10));

注解:C#中匿名函數使用委托來調用。
JS面向對象基礎
(1) JavaScript中沒有類的語法,是用函數閉包(closure)模擬出來的,下面講解的時候還是用C#中的類,構造函數等概念,JavaScript中string,date等”類”都被叫做”對象”,JavaScript中聲明類(類不是類,是對象)。
(2)
復制代碼 代碼如下:
function Person(name, age) { //聲明一個函數,當成類用
this.Name = name;
this.Age = age;
this.SayHello = function () {
alert("你好,我是" + this.Name + ",我今年:" + this.Age + "歲了");
}
}
var p1 = new Person("韓迎龍", "23");
p1.SayHello();

(3) 必須要聲明類名,function Person(name,age)可以看做是聲明構造函數,Name,Age這些屬性也是使用者動態添加了。
Array()對象
(1) JavaScript中的Array對象就是數組,首先是一個動態數組,而且是一個像C#中數組ArrayList,Hashtable等的超強綜合體。
(2)
復制代碼 代碼如下:
var names = new Array();
names[0] = "韓迎龍";
names[1] = "得到";
names[2] = "說的";
for (var i = 0; i < names.length; i++) {
alert(names[i]);
}

(3) 無需預先制定大小,動態。
Array()練習1
(1) Array練習,求出一個數組中的最大值。
復制代碼 代碼如下:
<script type="text/javascript">
function MyMax(arr) {
var max = arr[0];
for (var i = 0; i < arr.length; i++) {
if (arr[i] > max) {
max = arr[i];
} }
return max;
}
var arr = new Array();
arr[0] = 20;
arr[1] = 10;
arr[2] = 34;
alert(MyMax(arr));
</script>

Array()練習2
(1) 將一個字符串數組的元素的順序進行反轉,{3,9,5,34,54}{54,34.5.9.3}。不要使用JavaScript中的反轉函數,提示:第i個和第length-i-1進行交換,定義函數。
復制代碼 代碼如下:
<script type="text/javascript">
function MyReverse(arr) {
for (var i = 0; i < arr.length / 2; i++) {
var temp = arr[i];
arr[i] = arr[arr.length - i - 1];
arr[arr.length - i - 1] = temp;
}
}
var arr = new Array();
arr[0] = "3";
arr[1] = "9";
arr[2] = "5";
arr[3] = "34";
arr[4] = "54";
alert(arr);
MyReverse(arr);
alert(arr);

Array()練習3
(1) 將一個字符串數組輸出為|分割的形式,比如:韓迎龍|試試|訂單。不要使用JavaScript中的Join函數,arr.join(1)將數組用分割符鏈接成一個字符串。
復制代碼 代碼如下:
<script type="text/javascript">
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] = "韓迎龍";
arr[1] = "試試";
arr[2] = "訂單";
alert(MyJoin(arr));
//第二種方法
alert(arr.join("|"));
</script>

Array的字典用法
(1) JS中的Array是一個寶貝,不僅是一個數組,還是一個Dictionary,還是一個Stack。
(2)
復制代碼 代碼如下:
var names = new Array();
names["人"] = "ren";
names["扣"] = "kou";
names["手"] = "shou";
alert(names["人"]);
alert(names.人);
for (var k in names) {
alert(k);
}

(3) 像Hashtable,Dictionary那樣用,而且像他們一樣的效率高。
Array()的簡化聲明
(1) Array還可以有簡化的方式
var arr=[3,4,5,6,7]; //普通數組初始化
這種數組可以看做是names[“人”]=”ren”;的特例,也就是key為0,1,2,3,4,5
(2) 字典風格的簡化創建方式
var arr={”tom”=30,”jim=”30};
數組,for和其它
(1) 對於數組風格的Array來說,可以使用join方法拼接為字符串。
復制代碼 代碼如下:
var arr = ["tom", "jim", "kencery"];
alert(arr.join(",")); //JS中join是array的方法,不像.net中是string的方法

(2) for循環可以像C#中的foreach一樣的使用。
復制代碼 代碼如下:
for (var e in document) {
alert(e);
}

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved