- String物件
- Array物件
- Date物件
- Math物件
- Error物件
- Common物件
建議使用右下方Popout按鍵來「全螢幕」觀看。
History
2010/5/7,整理為xmind;2010/11/30,整理為Text。
String物件
HTML標籤的格式編排
Tag | 說明 |
---|---|
anchor() | 傳回<a>string</a>標籤字串 |
big() | 傳回<big>string</big>標籤字串 |
blink() | 傳回<blink>string</blink>標籤字串(I.E不會閃) |
bold() | 傳回<b>string</b>標籤字串 |
fixed() | 傳回<tt>string</tt>標籤字串 |
fontcolor(color) | 傳回<font color="color">string</font>標籤字串 |
fontsize(size) | 傳回<font size="size">string</font>標籤字串 |
italics() | 傳回<i>string</i>標籤字串 |
link(url) | 傳回<a href="url">string</a>標籤字串 |
small() | 傳回<small>string</small>標籤字串 |
strike() | 傳回<strike>string</strike>標籤字串 |
sub() | 傳回<sub>string</sub>標籤字串 |
sup() | 傳回<sup>string</sup>標籤字串 |
字串長度與大小寫
length | 取得字串的長度 |
toLowerCase() | 將字串的英文字母都轉換成小寫字母 |
toUpperCase() | 將字串的英文字母都轉換成大寫字母 |
取得字串的指定字元
charAt(index) | 取得參數index位置的字元,索引值是以0開始 |
charCodeAt(index) | 取得參數index位置的Unicode統一字碼 |
子字串的搜尋
indexOf(string, index) | 傳回第一次搜尋到字串的索引位置,如果沒有找到傳回-1,傳入的參數為搜尋的字串,index為開始搜尋的索引位置,如無index參數,則預設index=0 |
lastIndexOf(string) | 如同indexOf()方法,不過是從尾搜尋到頭的反向搜尋 |
match(string) | 如同indexOf()和lastIndexOf(),不過傳回的為找到的字串,如果沒有找到傳回null |
search(string) | 與indexOf()的功能相似 |
子字串的處理
replace(string1, string2) | 將找到的string1子字串取代成為string2 |
split(string) | 傳回Array物件,使用參數string作為分割的字串,將字串轉換成一個Array物件 |
substr(index, length) | 從index開始取出length個字元 |
slice(index1,index2) | 取出index1到index2間的子字串 |
substring(index1, index2) | 取出index1到index2間的子字串 |
concat(string) | 將string字串新增到String()物件的字串後 |
slice將負數當成從字串尾往前計數
var sWord = "1234567890" document.write(slice(2,-3)); //第一個index(2)會從3開始 //第二個index(-3)會從從尾到數三個後的下一個開始取值 //Ans: 34567用白話來講就是:從index2開始取,取到數第三個為止
substring則直接忽略負數,當成0來處理
substring(2,-3) = substring(2,0) = substring(0,2)
字串轉換為數值
parseInt(str,進位數) | 將字串轉換為整數,parseInt("010")會得到8, parseInt("010", 10)才會得到10,強烈建議進位數一定要設定 |
parseFloat() | 將字串轉換為浮點數 |
Array物件
Array宣告
var team = new Array(9); | 宣告一個0~9共10個的Array,team[0], team[1]… |
var team = new Array(); | 宣告一個空Array,可任意新增值到Array中,例team[20] = 'Bruce';即會產生team[0~19]的空Array,team[20]為指定值 |
var team = new Array('Bruce', 'Sherry', 'Daniel'); | 直接帶值宣告team[0],team[1],team[2]三個Array |
var team = ['Bruce','Sherry','Daniel']; | 透過[]符號直接宣告Array及值 |
Array物件的屬性和方法
length | 屬性,取得陣列的元素個數,也就是陣列的尺寸 |
join() | 將陣列的元素使用字串方式顯示,每個陣列元素使用「,」符號分隔,可指定使用的分隔符號,a.join('-->') |
reverse() | 將陣列的元素反轉,本來是陣列的最後一個元素成為第一個元素 |
sort() | 將陣列所有元素進行排序 |
concat(array) | 將參數的陣列合併到目前的陣列中, var a = [1,2,3,4,5], b = [6,7,8,9,0]; document.write(a.concat(b).join()); |
push() | 由push()與pop()來寶現堆疊(stack),stack.push('a');將a字串放入stack陣列 |
pop() | 先進後出,由最後一個Index來取出Array,例如,push()進去a,b,c三個值,那pop會由c,b,a順序取出 |
自訂陣列排序方式
排序行為可由比較函式(comparison function)來決定function compare(x,y){ return x-y; } a.sort(compare(x,y));或
a.sort(function(x,y){x-y});compare回傳值
- <0,x排序於y前
- 0,不排序
- >0,y排序於x前
Date物件
ECMAScript把日期儲存離UTC時間1970年1月1日0點的毫秒數取得日期和時間
getDate() | 傳回日期值1~31 |
getDay() | 傳回星期值0~6,也就是星期日到星期六 |
getMonth() | 傳回月份值0~11,也就是一到十二月,一般都會取值再加1才是我們看的數字 |
getFullYear() | 傳回完整的年份,例如:2012 |
getYear() | 傳回年份,如果在1900~1999年間,傳回後兩碼,例如:1998年傳回98,否則傳回完整的年份 |
getHours() | 傳回小時0~23 |
getMinutes() | 傳回分鐘0~59 |
getSeconds() | 傳回秒數0~59 |
getMilliseconds() | 傳回千分之一秒為單位的秒數,0~999 |
getTime() | 傳回自1/1/1970年開始的秒數,以千分之一秒為單位 |
設定日期和時間
這些設定的方法並不會修改電腦的時間和日期,只是設定Data物件記錄的時間和日期。setDate() | 設定Date物件的日期1~31 |
setMonth() | 設定Date物件的月份0~11 |
setFullYear() | 設定Date物件的完整年份 |
setYear() | 設定Date物件的年份,在1900~1999間只需使用後兩位,否則需要使用完整的年份 |
setHours() | 設定Date物件的小時0~23 |
setMinutes() | 設定Date物件的分鐘0~59 |
setSeconds() | 設定Date物件的秒數0~59 |
setMilliseconds() | 設定Date物件的秒數,以千分之一秒為單位,0~999 |
setTime() | 設定Date物件的時間,自1/1/1970年開始,以千分之一秒為單位 |
日期和時間的轉換
getTimezoneOffset() | 傳回本地時間和GMT的時間差,以分為單位 |
toGMTString() | 傳回轉換成GMT時間的字串 |
toLocalString() | 傳回將GMT轉換成本地時間的字串 |
parse(Date) | 傳回參數Date物件從1/1/1970到本地時間的毫秒數,以千分之一秒為單位 |
UTC(Date) | 傳回參數Date物件從1/1/1970到GMT時間的毫秒數,以千分之一秒為單位 |
Math物件
屬性
E | 自然數e=2.718281828459045 |
LN2 | ln2=0.6931471805599453 |
LN10 | ln10=2.302585092994046 |
LOG2E | log2e=1.4426950408889633 |
LOG10E | loge=0.4342944819032518 |
PI | 圓周率=3.141592653589793 |
SQRT1_2 | 根號1/2=0.7071067811865476 |
SQRT2 | 根號2=1.4142135623730951 |
亂數、最大值、最小值
max(value1,value2) | 傳回參數中的最大值,參數無限制 |
min(value1,value2) | 傳回參數中的最小值,參數無限制 |
random() | 傳回擬亂數值 |
round(value) | 將參數值四捨五入後傳回 |
數學方法
abs() | 傳回絕對值 |
acos() | 反餘弦函數 |
asin() | 反正弦函數 |
atan() | 反正切函數 |
atan2(y,x) | 反回原點和座標(x,y)的連線,與x正軸的夾角 |
ceil() | 傳回大於或等於參數的最小整數 |
cos() | 餘弦函數 |
exp() | 自然數的指數ex |
floor() | 傳回大於或等於參數的最大整數 |
log() | 自然對數 |
pow() | 次方 |
sin() | 正弦函數 |
sqrt() | 傳回參數的平方根 |
tan() | 正切函數 |
Error物件
number | 錯誤碼,這是一個32-bit的值,其中後16-bit才是真正的錯誤碼(IE) |
message | 錯誤說明的字串 |
description | 如同message屬性,這也是錯誤說明的字串(IE) |
try{ // javascript需要錯誤測試的程式碼 } catch(e){ //錯誤處理 var errMessage = ''; for (var i in e) errMessage += i + ":" + e[i] + "\n"; console.log(errMessage); } finally{ //不論錯誤是否產生,都會執行此區塊 }多層除錯
try { ... try { //第二層 ... } catch(e){ ... throw e; //丟出錯誤 ... } } catch(e) { ... //第一層錯誤 } finally { ... }
onerror事件
當頁面出現JavaScript錯誤,會觸發window.onerror事件window.onerror = function(){ //使用Firebug收集Log console.log("Error!"); }onerror事件提供三個參數
參數一:傳入錯誤訊息
參數二:傳入錯誤的URL
參數三:傳入錯誤的行號
window.onerror = function(message, url, line){ //使用Firebug收集Log console.log("Error:\n %s \nURL: %s \n行號: %s", message, url, line); return true; //取消系統事件 }console.log為Firebug Console API用法。
共用屬性與方法
共用屬性
constructor | javascript物件的constructor屬性,可以取得建立物件副本使用的建構函數名稱(除Global和Math都支援) |
var test = new String(); if (test.constructor == String){ ...... }
toString()
toString() | 傳回物件的內容,傳回值為字串,object.toString(); |
toString回傳值
Array | 將陣列元素轉換成「,」符號分隔的字串 |
Boolean | true傳回字串"true",false傳回字串"false" |
Date | 傳回日期和時間的字串 |
Error | 傳回錯誤息訊的字串 |
Function | 傳回字串格式"function name() {...}",其中name為呼叫toString方法的函數名稱 |
Number | 傳回數字字串。數值轉字串,同時進制轉換: var a=15; a.toString(8); //8代表8進制 a.toString(16); //16代表16進制 |
String | 傳回String物件的內容 |
valueOf()
傳回物件值(Math,Error不支援);object.valueOf();
valueOf()回傳值
Array | 將陣列元素轉換成以「,」符號分隔的字串,如同Array.toString和Array.join方法 |
Boolean | 傳回布林值 |
Date | 傳回前晚到現在的秒數,以千分之一秒為單位 |
Function | 傳回函數的本身 |
Number | 傳回數字 |
Object | 傳回物件本身 |
String | 傳回字串 |