對象概述
JavaScript是一種基於對象的腳本語句,而不是面向對象的編程語言。對象就是客觀世界存在的實體,具有屬性和方法兩方面特性。
訪問對象的屬性和方法的方式如下:
對象名.屬性
對象名.方法名()
第一節 數組對象類型 Array
數組可以存放很多相同類型的數據。有數組名代表所有這些數據,而用數組名[下標]表示其中某個元素(下標從0開始)。
如:var myA=["張三","李四","王五"];
document.write(myA); //看到所有三個字符串
myA[0]指向第一個元素
myA[2]指向第三個元素
1、建立數組的三種方法:
(1) 使用方括號,創建數組的同時賦初值
var myA=["張三", "李四","王五"];
var b=[10,20,30,40];
(2) 使用new 操作符,創建數組的同時賦初值
var myA=new Array("張三", "李四","王五");
注意圓括號和方括號的區別,不能任意使用。
(3) 先創建長度為10的數組,內容後面再賦值
var anArray = new Array(9);
anArray[0]= "張三";
anArray[1]= "李四";
anArray[2]= "王五";
2、數組的屬性
length
數組名.length 返回數組中元素的個數
如:myA.length 為 3
例:使用for語句輸出myA數組的各個元素。
for(i=0;i<myA.length;i++){
alert(myA[i]);
}
3、數組的方法
join(分割符)
該方法的功能是把數組中所有數據用指定的分割符連接起來,以一個字符串的形式表達出來。
例如: myA.join("/") 返回一個字符串 "張三/李四/王五"
reverse()
該方法的功能是將數組中的元素整個反轉順序。
例如: myA.reverse( ) 數組變為 ["王五","李四","張三"]
sort()
該方法的功能是將數組元素排序(漢字按拼音的字母順序)。
例如: myA.sort () 數組變為 ["李四","王五","張三"]
concat()
方法用於連接兩個或多個數組。
下面的例子將把 concat() 中的參數連接到數組 a 中
<script type="text/javascript">
var a = [1,2,3];
document.write(a.concat(4,5));
//輸出結果是:
//1,2,3,4,5
</script>
下面的例子創建了兩個數組,然後使用 concat() 把它們連接起來
<script type="text/javascript">
var arr = ["George","John","Thomas"];
var arr2 = ["James","Adrew","Martin"];
document.write(arr.concat(arr2));
//輸出結果是:
//George,John,Thomas,James,Adrew,Martin
</script>
下面的例子創建了三個數組,然後使用 concat() 把它們連接起來
<script type="text/javascript">
var arr = ["George","John","Thomas"];
var arr2 = ["James","Adrew","Martin"];
var arr3 = ["William","Franklin"];
document.write(arr.concat(arr2,arr3));
//輸出結果是:
//George,John,Thomas,James,Adrew,Martin,William,Franklin
</script>
pop()
方法用於刪除並返回數組的最後一個元素。
刪除數組的最後一個元素,把數組長度減 1,並且返回它刪除的元素的值。如果數組已經為空,
則 pop() 不改變數組,並返回 undefined 值。
<script type="text/javascript">
var arr = ["George","John","Thomas"];
document.write(arr);
document.write("<br />");
document.write(arr.pop());
document.write("<br />");
document.write(arr);
//輸出結果是:
//George,John,Thomas
//Thomas
//George,John
</script>
push()
方法可向數組的末尾添加一個或多個元素,並返回新的長度。
語法:arrayObject.push(newelement1,newelement2,....,newelementX)
push() 方法可把它的參數順序添加到 arrayObject 的尾部。它直接修改 arrayObject,而
不是創建一個新的數組。push() 方法和 pop() 方法使用數組提供的先進後出棧的功能。
<script type="text/javascript">
var arr = ["George","John","Thomas"];
document.write(arr + "<br />");
document.write(arr.push("James") + "<br />");
document.write(arr);
//輸出結果是:
//George,John,Thomas
//4
//George,John,Thomas,James
</script>
shift()
方法用於把數組的第一個元素從其中刪除,並返回第一個元素的值。
如果數組是空的,那麼 shift() 方法將不進行任何操作,返回 undefined 值。請注意,該方
法不創建新數組,而是直接修改原有的 arrayObject。
<script type="text/javascript">
var arr = ["George","John","Thomas"];
document.write(arr + "<br />");
document.write(arr.shift() + "<br />");
document.write(arr);
//輸出結果是:
//George,John,Thomas
//George
//John,Thomas
</script>
unshift()
方法可向數組的開頭添加一個或更多元素,並返回新的長度。
unshift() 方法將把它的參數插入 arrayObject 的頭部,並將已經存在的元素順次地移到
較高的下標處,以便留出空間。該方法的第一個參數將成為數組的新元素 0,如果還有第二個參數,
它將成為新的元素 1,以此類推。
請注意,unshift() 方法不創建新的創建,而是直接修改原有的數組。
<script type="text/javascript">
var arr = ["George","John","Thomas"];
document.write(arr + "<br />");
document.write(arr.unshift("William") + "<br />");
document.write(arr);
//輸出結果是:
//George,John,Thomas
//4
//William,George,John,Thomas
</script>
slice(start,end)
從已有的數組中返回選定的元素。
<script type="text/javascript">
var arr = ["George","John","Thomas"];
document.write(arr + "<br />");
document.write(arr.slice(1) + "<br />");
document.write(arr);
//輸出結果是:
//George,John,Thomas
//John,Thomas
//George,John,Thomas
</script>
<script type="text/javascript">
var arr =["George","John","Thomas","James","Adrew","Martin"];
document.write(arr + "<br />");
document.write(arr.slice(2,4) + "<br />");
document.write(arr);
//輸出結果是:
//George,John,Thomas,James,Adrew,Martin
//Thomas,James
//George,John,Thomas,James,Adrew,Martin
</script>
splice()
方法用於插入、刪除或替換數組的元素。
語法:arrayObject.splice(index,howmany,element1,.....,elementX)
splice() 方法可刪除從 index 處開始的零個或多個元素,並且用參數列表中聲明的一個或多
個值來替換那些被刪除的元素。
參數描述
index 必需。規定從何處添加/刪除元素。該參數是開始插入和(或)刪除的數組元素的下標,必須是數字。
howmany 必需。規定應該刪除多少元素。必須是數字,但可以是 "0"。
如果未規定此參數,則刪除從 index 開始到原數組結尾的所有元素。
element1 可選。規定要添加到數組的新元素。從 index 所指的下標處開始插入。
elementX 可選。可向數組添加若干元素。
下面的實例中,創建一個新數組,並向其添加一個元素:
<script type="text/javascript">
var arr =["George","John","Thomas","James","Adrew","Martin"];
document.write(arr + "<br />");
arr.splice(2,0,"William");
document.write(arr + "<br />");
//輸出結果是:
//George,John,Thomas,James,Adrew,Martin
//George,John,William,Thomas,James,Adrew,Martin
</script>
下面的實例中,將刪除位於 index 2 的元素,並添加一個新元素來替代被刪除的元素:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17<
script
type="text/javascript">
var arr =["George","John","Thomas","James","Adrew","Martin"];
document.write(arr + "<
br
/>");
arr.splice(2,1,"William");
document.write(arr);
//輸出結果是:
//George,John,Thomas,James,Adrew,Martin
//George,John,William,James,Adrew,Martin
</
script
>
下面的實例中,將刪除從 index 2 ("Thomas") 開始的三個元素,並添加一個新元素("William") 來替代被刪除的元素:
? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17<
script
type="text/javascript">
var arr =["George","John","Thomas","James","Adrew","Martin"];
document.write(arr + "<
br
/>");
arr.splice(2,3,"William");
document.write(arr);
//輸出結果是:
//George,John,Thomas,James,Adrew,Martin
//George,John,William,Martin
</
script
>
4、內部數組
在網頁對象中,有很多本身就是數組對象。例如:document對象的forms屬性就是一個數組對象,其中每個元素對應網頁中的一個表單,示例如下:
<form name="firstForm"></form>
<form name="secondForm"></form>
<form name="thirdForm"></form>
<script language="javascript">
var fs=document.forms;
for(i=0;i<fs.length;i++){
alert(fs[i].name);
}
</script>
表單中的一個選擇列表的options屬性也是一個數組對象,其中每個元素對應於列表中的一個選擇項目
<form name="myForm">
<select multiple size="5" name="box" onClick="f(this);">
<option value="apple">蘋果</option>
<option value="orange">橘子</option>
<option value="banana">香蕉</option>
</select>
</form>
<script language="javascript">
function f(o){
for(i=0;i<o.options.length;i++){
alert(o.options[i].value+","+o.options[i].text);
}
}
</script>
第二節 字符串對象類型 String
myStr="我們來自五湖四海!";
或
myStr= new String("我們來自五湖四海!");
1、字符串的長度屬性
myStr.length 返回字符串中字符的個數9,一個漢字算一個字符。
2、字符串的方法
分為兩大類,如下:
(1) 格式設置方法:
big(), bold(), fontcolor(顏色字符串), fontsize(字體號), sub(), sup()
(2) 通用字符串操作。
str="Hello";
方法描述示例及結果
anchor() 創建 HTML 錨。str.anchor("b"):<A NAME=”b”>Hello</A>
big() 用大號字體顯示字符串。str.big() : <BIG>Hello</BIG>
blink() 顯示閃動字符串。str.blink() : <BLINK>Hello</BLINK>
bold() 使用粗體顯示字符串。str.bold() : <B>Hello</B>
charAt() 返回在指定位置的字符。"北京歡迎你".charAt(2)結果是"歡"
"北京歡迎你".charAt(0)結果是"北"
charCodeAt() 返回在指定的位置的字符的Unicode 編碼。
"北京歡迎你".charCodeAt(2)結果是27426
concat() 連接字符串。"北京".concat("歡迎你")結果是"北京歡迎你"
fixed() 以打字機文本顯示字符串。str.fixed() : <FIXED>Hello</FIXED>
fontcolor() 使用指定的顏色來顯示字符串。str. Fontcolor ("Red") :
<FONT color="red">Hello</FONT>
fontsize() 使用指定的尺寸來顯示字符串。str. fontsize () : <FONT
size="3">Hello</FONT>
indexOf() 檢索字符串。"北京歡迎你".indexOf("歡迎")結果是2
"北京歡迎你".indexOf("上海")結果是-1
"北京歡迎你,歡迎".indexOf("歡迎")結果是2
italics() 使用斜體顯示字符串。str. italics () : <I>Hello</I>
lastIndexOf() 從後向前搜索字符串。"北京歡迎你,歡迎".lastIndexOf("歡迎")結果是6
link() 將字符串顯示為鏈接。str.link("http://www.javakc.com") :
<a href="http://www.javakc.com"> Hello </a>
match() 找到一個或多個正則表達式的匹配。
replace() 替換與正則表達式匹配的子串。
search() 檢索與正則表達式相匹配的值。
slice() 提取字符串的片斷,並在新的字符串中返回被提取的部分。
"北京歡迎你".slice(2,4) 結果是"歡迎"
small() 使用小字號來顯示字符串。str.small():<SMALL>Hello</SMALL>
split() 把字符串分割為字符串數組。"北京|歡迎你|歡迎".split("|")結果是
數組{"北京","歡迎你","歡迎"}
strike() 使用刪除線來顯示字符串。str.strike():<strike>Hello </strike>
sub() 把字符串顯示為下標。
str.sub( ) : <sub> Hello </sub>
substr() 從起始索引號提取字符串中指定數目的字符。
"北京歡迎你".substr(1,2) 結果是"京歡"
substring() 提取字符串中兩個指定的索引號之間的字符。
"北京歡迎你".substring(2,4)結果是"歡迎"
sup() 把字符串顯示為上標。str.sup():<sub> Hello </sub>1
toLowerCase() 把字符串轉換為小寫。(不改變舊的字符串)
"Welcome to BeiJing".toLowerCase()結果
是
welcome to beijing
toUpperCase() 把字符串轉換為大寫。(不改變舊的字符串)
"Welcome to BeiJing".toUpperCase()結果
是WELCOME TO BEIJING
第三節 數學類 Math
包含了常用的數學常量和函數。不需要創建該類型的對象,而可以直接使用Math.屬性名或
Math.方法名來使用這些常量和方法。
Math.E 返回2.718
Math.PI 返回3.14159 等等
Math 對象方法
方法描述
abs(x) 返回數的絕對值。
acos(x) 返回數的反余弦值。
asin(x) 返回數的反正弦值。
atan(x) 以介於 -PI/2 與 PI/2 弧度之間的數值來返回 x 的反正切值。
atan2(y,x) 返回從 x 軸到點 (x,y) 的角度(介於 -PI/2 與 PI/2 弧度之間)。
ceil(x) 對數進行上捨入。
cos(x) 返回數的余弦。
exp(x) 返回 e 的指數。
floor(x) 對數進行下捨入。
log(x) 返回數的自然對數(底為e)。
max(x,y) 返回 x 和 y 中的最高值。
min(x,y) 返回 x 和 y 中的最低值。
pow(x,y) 返回 x 的 y 次冪。
random() 返回 0 ~ 1 之間的隨機數。
round(x) 把數四捨五入為最接近的整數。
sin(x) 返回數的正弦。
sqrt(x) 返回數的平方根。
tan(x) 返回角的正切。
toSource() 返回該對象的源代碼。
valueOf() 返回 Math 對象的原始值。
第四節 日期時間類 Date
該類型對象中存放年月日時分秒等信息。
1、創建日期對象的幾種辦法:
new Date() 不帶參數,則以系統時間為新創建日期對象的內容。
new Date(毫秒數) 以距1970年1月1日零時到期望時間的毫秒數為參數,創建日期對象
new Date(2005,6,3,21,0,22) 設定2005年7月3日,注意月從0開始的
new Date("July 3, 2005 21:00:22") 以指定的時間為新創建日期對象的內容
2、日期對象的方法:
getDate() 返回幾號
getDay() 返回星期幾 (0代表星期日,1到6代表星期一到星期六)
getHours() 返回幾點
getMinutes() 返回分鐘數
getSeconds() 返回秒數
getTime() 返回距1970年1月1日零時到期望時間的毫秒數
getYear() 返回年份
setDate() 設置幾號
setDay() 設置星期幾 (0代表星期日,1到6代表星期一到星期六)
setHours() 設置幾點
setMinutes() 設置分鐘數
setSeconds() 設置秒數
setTime() 以距1970年1月1日零時到期望時間的毫秒數為參數,設置時間
setYear() 設置年份