一、javascript是面向對象的編程語言
封裝:把相關的信息(無論數據或方法)存儲在對象中的能力
聚集:把一個對象存儲在另一個對象內的能力
繼承:由另一個類(或多個類)得來類的屬性和方法的能力。
多態:編寫能以多種形態運行的函數或方法的能力
二、Array對象
使用單獨的變量名來存儲一系列的值。
2.1創建數組對象
var aValues = new Array(); var aValues = new Array(25); var aColors = new Array("red","green","blue"); alert(aColors[1]);//輸出green aColors[0] = "white"; //修改第一個元素的值 var aColors = new Array(); aColors[0] = "red"; aColors[1] = "green"; aColors[2] = "blue";
2.2使用字面量創建Array
var aColors = ["red","green","blue"]; aColors[3]="black";
2.3數組的長度
var aColors = new Array("red","green","blue“); alert(aColors.length);//輸出3 var aColors = new Array("red","green","blue“); alert(aColors.length);//輸出3 aColors[20]="black"; alert(aColors.length);//輸出21 alert(aColors[3]);//輸出undefined
2.4數組的遍歷
var subjects=["html/css/js","Web form","ajax","N-Tiers","oracle"]; for(var i=0;i<subjects.length;i++){ alert(subjects[i]); } var subjects=["html/css/js","Web form","ajax","N-Tiers","oracle"]; for(var index in subjects){ alert(subjects[index]); }
2.5數組的屬性和方法
length 設置或返回數組中元素的數目。
join() 通過指定的分隔符將數組的所有元素拼接成一個字符串。
reverse() 顛倒數組中元素的順序。
sort() 對數組的元素進行排序
arrayObject.sort(sortby)
參數為可選的。規定排序規則。必須是函數。
返回值為對數組的引用。請注意,數組在原數組上進行排序,不生成副本。
自定義排序規則
如果想按照其他標准進行排序,就需要提供比較函數,該函數要比較兩個值,然後返回一個用於說明這兩個值的相對順序的數字。
比較函數應該具有兩個參數 a 和 b,其返回值如下:若 a 小於 b,在排序後的數組中 a 應該出現在 b 之前,則返回一個小於 0 的值。若 a 等於 b,則返回 0。 若 a 大於 b,則返回一個大於 0 的值。
concat(Array array)
連接兩個或更多的數組,並返回結果。
Array slice(Number start,Number end)
從某個已有的數組返回選定的元素
var messages4 = messages3.slice(0, 5);
splice() 刪除元素,並向數組添加新元素。
messages4.splice(0, 2, "dddd"); //0表示開始刪除的元素位置,2表示刪除的長度,添加的元素為dddd,在刪除位置添加
push() 向數組的末尾添加一個或更多元素,並返回新的長度。
pop() 刪除並返回數組的最後一個元素
unshift() 向數組的開頭添加一個或更多元素,並返回新的長度。
shift() 刪除並返回數組的第一個元素
2.6數組的應用
var messages = new Array("","",""); messages[0] = "beijing"; messages[1] = "shanghai"; messages[2] = "zhejiang"; messages[3] = "hunan"; for ( var index in messages) { document.writeln("遍歷數組"); document.write(messages[index]); document.write("<br>"); } var s = messages.join(','); document.writeln("join數組"); document.write(s); document.write("<br>"); messages.reverse(); for ( var index in messages) { document.writeln("倒序後"); document.write(messages[index]); document.write("<br>"); } messages.sort(); for ( var index in messages) { document.writeln("排序後"); document.write(messages[index]); document.write("<hr>"); } var messages2 = ["a","c","b"]; var messages3 = messages.concat(messages2); for ( var index in messages3) { document.writeln("合並後"); document.write(messages3[index]); document.write("<hr>"); } var messages4 = messages3.slice(0, 5); for ( var index in messages4) { document.writeln("選擇slice(0,5)後"); document.write(messages4[index]); document.write("<hr>"); }
以上代碼輸出結果為:
遍歷數組 beijing
遍歷數組 shanghai
遍歷數組 zhejiang
遍歷數組 hunan
join數組 beijing,shanghai,zhejiang,hunan
倒序後 hunan
倒序後 zhejiang
倒序後 shanghai
倒序後 beijing
排序後 beijing
排序後 hunan
排序後 shanghai
排序後 zhejiang
合並後 beijing
合並後 hunan
合並後 shanghai
合並後 zhejiang
合並後 a
合並後 c
合並後 b
選擇slice(0,5)後 beijing
選擇slice(0,5)後 hunan
選擇slice(0,5)後 shanghai
選擇slice(0,5)後 zhejiang
選擇slice(0,5)後 a
三、Date對象
Date 對象用於獲得和處理日期和時間。
3.1定義日期
var myDate=new Date() ; var myDate=new Date(2009 , 7 , 20); //2009-08-20 var myDate=new Date(2009 , 7 , 20 , 16, 40 ,58, 999); //依次表示年月日時分秒毫秒
3.2日期對象的方法
3.2.1toXXX方法組
toString() 把 Date 對象轉換為字符串。
toTimeString()
把 Date 對象的時間部分轉換為字符串。
toDateString()
把 Date 對象的日期部分轉換為字符串。
toGMTString() 根據格林尼治時間,把 Date 對象轉換為字符串。
toUTCString() 根據世界時,把 Date 對象轉換為字符串。
toLocaleString()
把 Date 對象轉換為本地時間格式字符串。
toLocaleTimeString()
把 Date 對象的時間部分轉換為本地時間格式字符串
toLocaleDateString()
把 Date 對象的日期部分轉換為本地時間格式字符串
3.2.2getXXX方法組
getDate() 從 Date 對象返回一個月中的某一天 (1 ~ 31)
getDay() 從 Date 對象返回一周中的某一天 (0 ~ 6)
getMonth() 從 Date 對象返回月份 (0 ~ 11)
getFullYear() 從 Date 對象以四位數字返回年份
getYear() 從 Date 對象以兩位或四位數字返回年份。
getHours() 返回 Date 對象的小時 (0 ~ 23)
getMinutes() 返回 Date 對象的分鐘 (0 ~ 59)
getSeconds() 返回 Date 對象的秒數 (0 ~ 59))
getMilliseconds()
返回 Date 對象的毫秒(0 ~ 999)
getTime() 返回 1970 年 1 月 1 日至今的毫秒數
3.2.3setXXX方法組
setDate() 設置 Date 對象中月的某一天 (1 ~ 31))
setMonth() 設置 Date 對象中月份 (0 ~ 11))
setFullYear() 設置 Date 對象中的年份(四位數字)
setYear() 設置 Date 對象中的年份(兩位或四位數字)。
setHours() 設置 Date 對象中的小時 (0 ~ 23)
setMinutes() 設置 Date 對象中的分鐘 (0 ~ 59)
setSeconds() 設置 Date 對象中的秒鐘 (0 ~ 59)
setMilliseconds()
設置 Date 對象中的毫秒 (0 ~ 999)
setTime() 通過向時間原點添加或減去指定毫秒數來計算日期和時間
四、String對象
String對象表示Unicode字符的序列。
String 對象的 length 屬性聲明了該字符串中的字符數。
String 類定義了大量操作字符串的方法。
4.1屬性
length 字符串的長度
4.2與字符串格式控制相關的方法
big()、small() 用大號字體、小字號體顯示字符串。
bold() 使用粗體顯示字符串。
italics() 使用斜體顯示字符串。
strike() 使用刪除線來顯示字符串。
fontcolor() 使用指定的顏色來顯示字符串。
fontsize() 使用指定的尺寸來顯示字符串。
sub()、sup() 把字符串顯示為下標、上標。
toLowerCase()、toUpperCase()
把字符串轉換為小寫、大寫。
fixed() 以打字機文本顯示字符串。
link() 將字符串顯示為鏈接。
anchor() 創建 HTML 錨。
4.3與字符串內容操作相關的方法
charAt() 返回在指定位置的字符。
charCodeAt() 返回在指定的位置的字符的 Unicode 編碼。
concat() 連接字符串。
fromCharCode()
從字符編碼創建一個字符串。
indexOf()、lastIndexOf()
從前向後檢索字符串。從後向前搜索字符串。
localeCompare()
用本地特定的順序來比較兩個字符串。
match() 找到一個或多個正在表達式的匹配。
replace()、search()
替換、檢索與正則表達式匹配的子串。
slice() 提取字符串的片斷。
split() 把字符串分割為字符串數組。
substr() 從起始索引號提取字符串中指定數目的字符。
substring() 提取字符串中兩個指定的索引號之間的字符。
4.4應用
var strings = new String("AbcDEfG"); document.write("strings中的字符串值:"); document.write(strings); document.write('<hr>'); document.write("strings.big()大號字體顯示:"); document.write(strings.big()); document.write('<hr>'); document.write("strings.small()小號字體顯示:"); document.write(strings.small()); document.write('<hr>'); document.write("strings.bold()粗體顯示:"); document.write(strings.bold()); document.write('<hr>'); document.write("strings.italics()斜體顯示:"); document.write(strings.italics()); document.write('<hr>'); document.write("strings.strike()刪除線顯示:"); document.write(strings.strike()); document.write('<hr>'); document.write("strings.fontcolor('green')指定顏色顯示:"); document.write(strings.fontcolor('green')); document.write('<hr>'); document.write("strings.fontsize(10)指定大小顯示:"); document.write(strings.fontsize(10)); document.write('<hr>'); document.write("strings.sub()下標顯示:"); document.write("123"+ strings.sub()); document.write('<hr>'); document.write("strings.sup()上標顯示:"); document.write("123"+strings.sup()); document.write('<hr>'); document.write("strings.toLocaleLowerCase()小寫顯示:"); document.write(strings.toLocaleLowerCase()); document.write('<hr>'); document.write("strings.toLocaleUpperCase()大寫顯示:"); document.write(strings.toLocaleUpperCase()); document.write('<hr>'); document.write("strings.fixed()打字機文本顯示:"); document.write(strings.fixed()); document.write('<hr>'); document.write("strings.link()鏈接顯示:"); document.write(strings.link()); document.write('<hr>'); document.write("strings.anchor()創建HTML錨顯示:"); document.write(strings.anchor()); document.write('<hr>'); document.write("strings.charAt(2)返回指定位置的字符:"); document.write(strings.charAt(2)); document.write('<hr>'); document.write("strings.charCodeAt(2)返回指定位置的字符的unicode編碼:"); document.write(strings.charCodeAt(2)); document.write('<hr>'); document.write("strings.concat('higkL')連接字符串:"); document.write(strings.concat("higkL")); document.write('<hr>'); document.write("String.fromCharCode(98)靜態方法從字符編碼創建一個字符串:"); document.write(String.fromCharCode(98)); document.write('<hr>'); document.write("strings.indexOf('G', 1)從指定1處開始從前向後檢索字符,返回一個位置值:"); document.write(strings.indexOf('G', 1)); document.write('<hr>'); document.write("strings.lastIndexOf('G', 1)從指定1處開始從後向前檢索字符,找不到指定字符位置返回-1.返回一個位置值:"); document.write(strings.lastIndexOf('G', 1)); document.write('<hr>'); document.write("strings.localeCompare('ABcdEfG'):'ABcdEfG'從第0個位置開始比較'AbcDEfG',如果兩個字符串完全相同返回0,被比較的字符串ASSIC碼值要小,則返回-1,大則返回1。用本地特定的順序來比較兩個字符串:"); document.write(strings.localeCompare("ABcdEfG")); document.write('<hr>'); document.write("strings.match('[a-z]{2}'):'AbcDEfG',返回值為bc,表示匹配到了。匹配不到返回null。找到一個或多個正則表達式的匹配:"); document.write(strings.match('[a-z]{2}')); document.write('<hr>'); document.write("strings.search('[a-z]'):'AbcDEfG',返回值為下標1,表示檢索到了。匹配不到返回-1。找到一個或多個正則表達式的匹配:"); document.write(strings.search('[a-z]')); document.write('<hr>'); document.write('strings.slice(2, 3)參數1表示開始位置,參數2表示結束位置,不包括該位置。提取字符串:'); document.write(strings.slice(2, 3)); document.write('<hr>'); document.write('strings.substring(2, 3)參數1表示開始位置,參數2表示結束位置,不包括該位置。提取字符串:'); document.write(strings.substring(2, 3)); document.write('<hr>'); 以上代碼輸出為 strings中的字符串值:AbcDEfG strings.big()大號字體顯示:AbcDEfG strings.small()小號字體顯示:AbcDEfG strings.bold()粗體顯示:AbcDEfG strings.italics()斜體顯示:AbcDEfG strings.strike()刪除線顯示:AbcDEfG strings.fontcolor('green')指定顏色顯示:AbcDEfG strings.fontsize(10)指定大小顯示:AbcDEfG strings.sub()下標顯示:123AbcDEfG strings.sup()上標顯示:123AbcDEfG strings.toLocaleLowerCase()小寫顯示:abcdefg strings.toLocaleUpperCase()大寫顯示:ABCDEFG strings.fixed()打字機文本顯示:AbcDEfG strings.link()鏈接顯示:AbcDEfG strings.anchor()創建HTML錨顯示:AbcDEfG strings.charAt(2)返回指定位置的字符:c strings.charCodeAt(2)返回指定位置的字符的unicode編碼:99 strings.concat('higkL')連接字符串:AbcDEfGhigkL String.fromCharCode(98)靜態方法從字符編碼創建一個字符串:b strings.indexOf('G', 1)從指定1處開始從前向後檢索字符,返回一個位置值:6 strings.lastIndexOf('G', 1)從指定1處開始從後向前檢索字符,找不到指定字符位置返回-1.返回一個位置值:-1 strings.localeCompare('ABcdEfG'):'ABcdEfG'從第0個位置開始比較'AbcDEfG',如果兩個字符串完全相同返回0,被比較的字符串ASSIC碼值要小,則返回-1,大則返回1。用本地特定的順序來比較兩個字符串:-1 strings.match('[a-z]{2}'):'AbcDEfG',返回值為bc,表示匹配到了。匹配不到返回null。找到一個或多個正則表達式的匹配:bc strings.search('[a-z]'):'AbcDEfG',返回值為下標1,表示檢索到了。匹配不到返回-1。找到一個或多個正則表達式的匹配:1 strings.slice(2, 3)參數1表示開始位置,參數2表示結束位置,不包括該位置。提取字符串:c strings.substring(2, 3)參數1表示開始位置,參數2表示結束位置,不包括該位置。提取字符串:c
五、Math對象
Math對象是一個數學工具,包含很多表示數學常數的靜態只讀屬性和執行數學運算的靜態方法。
E 常量 e,自然對數的底數 (約等於2.718)
LN2 返回 2 的自然對數(約等於0.693)
LN10 返回 10 的自然對數(約等於2.302)
LOG2E 返回以 2 為底的 e 的對數 (約等於 1.414)
LOG10E 返回以 10 為底的 e 的對數 (約等於0.434)
PI 返回圓周率 (約等於3.14159)
SQRT1_2 返回 2 的平方根除 1 (約等於 0.707)
SQRT2 返回 2 的平方根 (約等於 1.414)
abs(x) 返回數的絕對值
cos(x)、acos(x)
返回數的正弦、反余弦值
sin(x) 、asin(x)
返回數的正弦、反正弦值
tan(x)、atan(x)
返回角的正切、返回 -PI/2 與 PI/2之間弧度數的反正切值
atan2(y,x) 返回從 x 軸到點 (x,y) 的角度
ceil(x)、floor(x)
對一個數進行上捨入。對一個數進行下捨入。
exp(x)、log(x) 返回 e 的指數。返回數的自然對數(底為e)
max(x,y)、min(x,y)
返回 x 和 y 中的最高值
pow(x,y) 返回 x 的 y 次冪
random() 返回 0 ~ 1 之間的隨機數
round(x) 把一個數四捨五入為最接近的整數
sqrt(x) 返回數的平方根
六、Global對象
全局對象是預定義的對象,作為 JavaScript 的全局函數和全局屬性的占位符。
通過使用全局對象,可以訪問所有其他所有預定義的對象、函數和屬性。
全局對象不是任何對象的屬性,所以它沒有名稱。它既沒有構造函數,也無法實例化一個新的全局對象,它的所有成員都是靜態的。
6.1全局屬性
Infinity 代表正的無窮大的數值。
NaN 指示某個值是不是數字值。
undefined 指示未定義的值。
6.2全局函數
decodeURI() 解碼某個編碼的 URI。
decodeURIComponent()
解碼一個編碼的 URI 組件。
encodeURI() 把字符串編碼為 URI。
encodeURIComponent()
把字符串編碼為 URI 組件。
eval() 計算字符串,並把它作為腳本代碼來執行。
isFinite() 檢查某個值是否為有窮大的數。
isNaN() 檢查某個值是否是數字。
isNaN() 函數通常用於檢測 parseFloat() 和 parseInt() 的結果,以判斷它們表示的是否是合法的數字。當然也可以用 isNaN() 函數來檢測算數錯誤,比如用 0 作除數的情況。
parseFloat() 解析一個字符串並返回一個浮點數。
parseInt() 解析一個字符串並返回一個整數。
七、小結
JavaScript是一門面向對象的語言,具有自定義對象的能力。同時,它可以基於已有對象編程,包含ECMAScript的本地對象,作為宿主的浏覽器運行環境提供一組浏覽器對象和網頁提供的對象。
本地對象是一組由ECMAScript提供的引用類型,它何ECMAScript都會實現的一些對象,與特定的腳本宿主無關。
數組對象實際上是長度動態的集合,它包含了長度屬性和排序,反轉,拼接等方法。
日期對象表示某個特定的時刻。可通過它的構造函數獲取浏覽器本機的系統時間,或指定特定的日期時間,它包含一組get方法可用於獲取日期對象中的某部分信息,也可用它的一組get方法改變日期對象的某些方法,或通過它的一組to方法獲得日期對象的字符串形式。
字符串對象表示0個或多個Unicode字符的序列。它包含了length屬性,另有一組用於格式變換的方法和對其中的字符進行操作的方法。
全局對象包含一系列全局的屬性和全局的函數,這些屬性和函數可不經引用任何對象直接使用。
數學對象包含一組靜態只讀屬性用於表示一些數學常數,另包含一組靜態方法用於實現常用的數學運算。
有關JavaScript常用本地對象小結小編就給大家介紹這麼多,希望對大家有所幫助!