JAVASCRIPT學習筆記基礎(四)
Array 對象
Array 對象用於在單個的變量中存儲多個值。
創建 Array 對象的語法:
new Array(); new Array(size); new Array(element0, element1, ..., elementn);
參數
參數 size 是期望的數組元素個數。返回的數組,length 字段將被設為 size 的值。
參數 element ..., elementn 是參數列表。當使用這些參數來調用構造函數 Array() 時,新創建的數組的元素就會被初始化為這些值。它的 length 字段也會被設置為參數的個數。
返回值
返回新創建並被初始化了的數組。
如果調用構造函數 Array() 時沒有使用參數,那麼返回的數組為空,length 字段為 0。
當調用構造函數時隻傳遞給它一個數字參數,該構造函數將返回具有指定個數、元素為 undefined 的數組。
當其他參數調用 Array() 時,該構造函數將用參數指定的值初始化數組。
當把構造函數作為函數調用,不使用 new 運算符時,它的行為與使用 new 運算符調用它時的行為完全一樣。
Array 對象屬性
FF: Firefox, IE: Internet Explorer
屬性 | 描述 | FF | IE |
---|---|---|---|
constructor | 返回對創建此對象的數組函數的引用。 | 1 | 4 |
index | 1 | 4 | |
input | 1 | 4 | |
length | 設置或返回數組中元素的數目。 | 1 | 4 |
prototype | 使您有能力向對象添加屬性和方法。 | 1 | 4 |
Array 對象方法
FF: Firefox, IE: Internet Explorer
方法 | 描述 | FF | IE |
---|---|---|---|
concat() | 連接兩個或更多的數組,並返回結果。 | 1 | 4 |
join() | 把數組的所有元素放入一個字符串。元素通過指定的分隔符進行分隔。 | 1 | 4 |
pop() | 刪除並返回數組的最後一個元素 | 1 | 5.5 |
push() | 向數組的末尾添加一個或更多元素,並返回新的長度。 | 1 | 5.5 |
reverse() | 顛倒數組中元素的順序。 | 1 | 4 |
shift() | 刪除並返回數組的第一個元素 | 1 | 5.5 |
slice() | 從某個已有的數組返回選定的元素 | 1 | 4 |
sort() | 對數組的元素進行排序 | 1 | 4 |
splice() | 刪除元素,並向數組添加新元素。 | 1 | 5.5 |
toSource() | 返回該對象的源代碼。 | 1 | - |
toString() | 把數組轉換為字符串,並返回結果。 | 1 | 4 |
toLocaleString() | 把數組轉換為本地數組,並返回結果。 | 1 | 4 |
unshift() | 向數組的開頭添加一個或更多元素,並返回新的長度。 | 1 | 6 |
valueOf() | 返回數組對象的原始值 | 1 | 4 |
定義數組
數組對象用來在單獨的變量名中存儲一係列的值。
我們使用關鍵詞 new 來創建數組對象。下麵的代碼定義了一個名為 myArray 的數組對象:
var myArray=new Array()
有兩種向數組賦值的方法(你可以添加任意多的值,就像你可以定義你需要的任意多的變量一樣)。
1:
var mycars=new Array()
mycars[0]="Saab"
mycars[1]="Volvo"
mycars[2]="BMW"
也可以使用一個整數自變量來控製數組的容量:
var mycars=new Array(3)
mycars[0]="Saab"
mycars[1]="Volvo"
mycars[2]="BMW"
2:
var mycars=new Array("Saab","Volvo","BMW")
注意:如果你需要在數組內指定數值或者邏輯值,那麼變量類型應該是數值變量或者布爾變量,而不是字符變量。
訪問數組
通過指定數組名以及索引號碼,你可以訪問某個特定的元素。
下麵是代碼行:
document.write(mycars[0])
下麵是輸出:
Saab
修改已有數組中的值
如需修改已有數組中的值,隻要向指定下標號添加一個新值即可:
mycars[0]="Opel";
現在,以上代碼:
document.write(mycars[0]);
將輸出:
Opel
JavaScript Math 對象的參考手冊
Math 對象
Math 對象用於執行數學任務。
使用 Math 的屬性和方法的語法:
var pi_value=Math.PI; var sqrt_value=Math.sqrt(15);
注釋:Math 對象並不像 Date 和 String 那樣是對象的類,因此沒有構造函數 Math(),像 Math.sin() 這樣的函數隻是函數,不是某個對象的方法。您無需創建它,通過把 Math 作為對象使用就可以調用其所有屬性和方法。
Math 對象屬性
FF: Firefox, IE: Internet Explorer
屬性 | 描述 | FF | IE |
---|---|---|---|
E | 返回算術常量 e,即自然對數的底數(約等於2.718)。 | 1 | 3 |
LN2 | 返回 2 的自然對數(約等於0.693)。 | 1 | 3 |
LN10 | 返回 10 的自然對數(約等於2.302)。 | 1 | 3 |
LOG2E | 返回以 2 為底的 e 的對數(約等於 1.414)。 | 1 | 3 |
LOG10E | 返回以 10 為底的 e 的對數(約等於0.434)。 | 1 | 3 |
PI | 返回圓周率(約等於3.14159)。 | 1 | 3 |
SQRT1_2 | 返回返回 2 的平方根的倒數(約等於 0.707)。 | 1 | 3 |
SQRT2 | 返回 2 的平方根(約等於 1.414)。 | 1 | 3 |
Math 對象方法
FF: Firefox, IE: Internet Explorer
方法 | 描述 | FF | IE |
---|---|---|---|
abs(x) | 返回數的絕對值。 | 1 | 3 |
acos(x) | 返回數的反餘弦值。 | 1 | 3 |
asin(x) | 返回數的反正弦值。 | 1 | 3 |
atan(x) | 以介於 -PI/2 與 PI/2 弧度之間的數值來返回 x 的反正切值。 | 1 | 3 |
atan2(y,x) | 返回從 x 軸到點 (x,y) 的角度(介於 -PI/2 與 PI/2 弧度之間)。 | 1 | 3 |
ceil(x) | 對數進行上舍入。 | 1 | 3 |
cos(x) | 返回數的餘弦。 | 1 | 3 |
exp(x) | 返回 e 的指數。 | 1 | 3 |
floor(x) | 對數進行下舍入。 | 1 | 3 |
log(x) | 返回數的自然對數(底為e)。 | 1 | 3 |
max(x,y) | 返回 x 和 y 中的最高值。 | 1 | 3 |
min(x,y) | 返回 x 和 y 中的最低值。 | 1 | 3 |
pow(x,y) | 返回 x 的 y 次冪。 | 1 | 3 |
random() | 返回 0 ~ 1 之間的隨機數。 | 1 | 3 |
round(x) | 把數四舍五入為最接近的整數。 | 1 | 3 |
sin(x) | 返回數的正弦。 | 1 | 3 |
sqrt(x) | 返回數的平方根。 | 1 | 3 |
tan(x) | 返回角的正切。 | 1 | 3 |
toSource() | 返回該對象的源代碼。 | 1 | - |
valueOf() | 返回 Math 對象的原始值。 | 1 | 4 |
Math 對象
Math(算數)對象的作用是:執行普通的算數任務。
Math 對象提供多種算數值類型和函數。無需在使用這個對象之前對它進行定義。
算數值
JavaScript 提供 8 種可被 Math 對象訪問的算數值:
- 常數
- 圓周率
- 2 的平方根
- 1/2 的平方根
- 2 的自然對數
- 10 的自然對數
- 以 2 為底的 e 的對數
- 以 10 為底的 e 的對數
這是在 Javascript 中使用這些值的方法:(與上麵的算數值一一對應)
- Math.E
- Math.PI
- Math.SQRT2
- Math.SQRT1_2
- Math.LN2
- Math.LN10
- Math.LOG2E
- Math.LOG10E
算數方法
除了可被 Math 對象訪問的算數值以外,還有幾個函數(方法)可以使用。
函數(方法)實例:
下麵的例子使用了 Math 對象的 round 方法對一個數進行四舍五入。
document.write(Math.round(4.7)
)
上麵的代碼輸出為:
5
下麵的例子使用了 Math 對象的 random() 方法來返回一個介於 0 和 1 之間的隨機數:
document.write(Math.random()
)
上麵的代碼輸出為:
0.9370844220218102
下麵的例子使用了 Math 對象的 floor() 方法和 random() 來返回一個介於 0 和 10 之間的隨機數:
document.write(Math.floor(Math.random()*11)
)
上麵的代碼輸出為:
3
JavaScript RegExp 對象參考手冊
RegExp 對象
RegExp 對象表示正則表達式,它是對字符串執行模式匹配的強大工具。
直接量語法
/pattern/attributes
創建 RegExp 對象的語法:
new RegExp(pattern, attributes);
參數
參數 pattern 是一個字符串,指定了正則表達式的模式或其他正則表達式。
參數 attributes 是一個可選的字符串,包含屬性 "g"、"i" 和 "m",分別用於指定全局匹配、區分大小寫的匹配和多行匹配。ECMAScript 標準化之前,不支持 m 屬性。如果pattern 是正則表達式,而不是字符串,則必須省略該參數。
返回值
一個新的 RegExp 對象,具有指定的模式和標誌。如果參數 pattern 是正則表達式而不是字符串,那麼 RegExp() 構造函數將用與指定的 RegExp 相同的模式和標誌創建一個新的 RegExp 對象。
如果不用 new 運算符,而將 RegExp() 作為函數調用,那麼它的行為與用 new 運算符調用時一樣,隻是當 pattern 是正則表達式時,它隻返回pattern,而不再創建一個新的 RegExp 對象。
拋出
SyntaxError - 如果 pattern 不是合法的正則表達式,或 attributes 含有 "g"、"i" 和 "m" 之外的字符,拋出該異常。
TypeError - 如果 pattern 是 RegExp 對象,但沒有省略 attributes 參數,拋出該異常。
方括號
方括號用於查找某個範圍內的字符:
表達式 | 描述 |
---|---|
[abc] | 查找方括號之間的任何字符。 |
[^abc] | 查找任何不在方括號之間的字符。 |
[0-9] | 查找任何從 0 至 9 的數字。 |
[a-z] | 查找任何從小寫 a 到小寫 z 的字符。 |
[A-Z] | 查找任何從大寫 A 到大寫 Z 的字符。 |
[A-z] | 查找任何從大寫 A 到小寫 z 的字符。 |
[adgk] | 查找給定集合內的任何字符。 |
[^adgk] | 查找給定集合外的任何字符。 |
(red|blue|green) | 查找任何指定的選項。 |
元字符
元字符(Metacharacter)是擁有特殊含義的字符:
元字符 | 描述 |
---|---|
. | 查找單個字符,除了換行和行結束符。 |
\w | 查找單詞字符。 |
\W | 查找非單詞字符。 |
\d | 查找數字。 |
\D | 查找非數字字符。 |
\s | 查找空白字符。 |
\S | 查找非空白字符。 |
\b | 查找位於單詞的開頭或結尾的匹配。 |
\B | 查找不處在單詞的開頭或結尾的匹配。 |
\0 | 查找 NUL 字符。 |
\n | 查找換行符。 |
\f | 查找換頁符。 |
\r | 查找回車符。 |
\t | 查找製表符。 |
\v | 查找垂直製表符。 |
\xxx | 查找以八進製數 xxx 規定的字符。 |
\xdd | 查找以十六進製數 dd 規定的字符。 |
\uxxxx | 查找以十六進製數 xxxx 規定的 Unicode 字符。 |
量詞
量詞 | 描述 |
---|---|
n+ | 匹配任何包含至少一個 n 的字符串。 |
n* | 匹配任何包含零個或多個 n 的字符串。 |
n? | 匹配任何包含零個或一個 n 的字符串。 |
n{X} | 匹配包含 X 個 n 的序列的字符串。 |
n{X,Y} | 匹配包含 X 或 Y 個 n 的序列的字符串。 |
n{X,} | 匹配包含至少 X 個 n 的序列的字符串。 |
n$ | 匹配任何結尾為 n 的字符串。 |
^n | 匹配任何開頭為 n 的字符串。 |
?=n | 匹配任何其後緊接指定字符串 n 的字符串。 |
?!n | 匹配任何其後沒有緊接指定字符串 n 的字符串。 |
RegExp 對象屬性
FF: Firefox, IE: Internet Explorer
屬性 | 描述 | FF | IE |
---|---|---|---|
global | RegExp 對象是否具有標誌 g。 | 1 | 4 |
ignoreCase | RegExp 對象是否具有標誌 i。 | 1 | 4 |
lastIndex | 一個整數,標示開始下一次匹配的字符位置。 | 1 | 4 |
multiline | RegExp 對象是否具有標誌 m。 | 1 | 4 |
source | 正則表達式的源文本。 | 1 | 4 |
RegExp 對象方法
FF: Firefox, IE: Internet Explorer
方法 | 描述 | FF | IE |
---|---|---|---|
compile | 編譯正則表達式。 | 1 | 4 |
exec | 檢索字符串中指定的值。返回找到的值,並確定其位置。 | 1 | 4 |
test | 檢索字符串中指定的值。返回 true 或 false。 | 1 | 4 |
支持正則表達式的 String 對象的方法
FF: Firefox, IE: Internet Explorer
方法 | 描述 | FF | IE |
---|---|---|---|
search | 檢索與正則表達式相匹配的值。 | 1 | 4 |
match | 找到一個或多個正則表達式的匹配。 | 1 | 4 |
replace | 替換與正則表達式匹配的子串。 | 1 | 4 |
split | 把字符串分割為字符串數組。 | 1 | 4 |
JavaScript Cookies
cookie 用來識別用戶。
實例
- 創建一個歡迎 cookie
- 利用用戶在提示框中輸入的數據創建一個 JavaScript Cookie,當該用戶再次訪問該頁麵時,根據 cookie 中的信息發出歡迎信息。
什麼是cookie?
cookie 是存儲於訪問者的計算機中的變量。每當同一台計算機通過瀏覽器請求某個頁麵時,就會發送這個 cookie。你可以使用 JavaScript 來創建和取回 cookie 的值。
有關cookie的例子:
- 名字 cookie
- 當訪問者首次訪問頁麵時,他或她也許會填寫他/她們的名字。名字會存儲於 cookie 中。當訪問者再次訪問網站時,他們會收到類似 "Welcome John Doe!" 的歡迎詞。而名字則是從 cookie 中取回的。
- 密碼 cookie
- 當訪問者首次訪問頁麵時,他或她也許會填寫他/她們的密碼。密碼也可被存儲於 cookie 中。當他們再次訪問網站時,密碼就會從 cookie 中取回。
- 日期 cookie
- 當訪問者首次訪問你的網站時,當前的日期可存儲於 cookie 中。當他們再次訪問網站時,他們會收到類似這樣的一條消息:"Your last visit was on Tuesday August 11, 2005!"。日期也是從 cookie 中取回的。
創建和存儲 cookie
在這個例子中我們要創建一個存儲訪問者名字的 cookie。當訪問者首次訪問網站時,他們會被要求填寫姓名。名字會存儲於 cookie 中。當訪問者再次訪問網站時,他們就會收到歡迎詞。
首先,我們會創建一個可在 cookie 變量中存儲訪問者姓名的函數:
function setCookie(c_name,value,expiredays) { var exdate=new Date() exdate.setDate(exdate.getDate()+expiredays) document.cookie=c_name+ "=" +escape(value)+ ((expiredays==null) ? "" : ";expires="+exdate.toGMTString()) }
上麵這個函數中的參數存有 cookie 的名稱、值以及過期天數。
在上麵的函數中,我們首先將天數轉換為有效的日期,然後,我們將 cookie 名稱、值及其過期日期存入 document.cookie 對象。
之後,我們要創建另一個函數來檢查是否已設置 cookie:
function getCookie(c_name) { if (document.cookie.length>0) { c_start=document.cookie.indexOf(c_name + "=") if (c_start!=-1) { c_start=c_start + c_name.length+1 c_end=document.cookie.indexOf(";",c_start) if (c_end==-1) c_end=document.cookie.length return unescape(document.cookie.substring(c_start,c_end)) } } return "" }
上麵的函數首先會檢查 document.cookie 對象中是否存有 cookie。假如 document.cookie 對象存有某些 cookie,那麼會繼續檢查我們指定的 cookie 是否已儲存。如果找到了我們要的 cookie,就返回值,否則返回空字符串。
最後,我們要創建一個函數,這個函數的作用是:如果 cookie 已設置,則顯示歡迎詞,否則顯示提示框來要求用戶輸入名字。
function checkCookie() { username=getCookie('username') if (username!=null && username!="") {alert('Welcome again '+username+'!')} else { username=prompt('Please enter your name:',"") if (username!=null && username!="") { setCookie('username',username,365) } } }
這是所有的代碼:
<html> <head> <script type="text/javascript"> function getCookie(c_name) { if (document.cookie.length>0) { c_start=document.cookie.indexOf(c_name + "=") if (c_start!=-1) { c_start=c_start + c_name.length+1 c_end=document.cookie.indexOf(";",c_start) if (c_end==-1) c_end=document.cookie.length return unescape(document.cookie.substring(c_start,c_end)) } } return "" } function setCookie(c_name,value,expiredays) { var exdate=new Date() exdate.setDate(exdate.getDate()+expiredays) document.cookie=c_name+ "=" +escape(value)+ ((expiredays==null) ? "" : ";expires="+exdate.toGMTString()) } function checkCookie() { username=getCookie('username') if (username!=null && username!="") {alert('Welcome again '+username+'!')} else { username=prompt('Please enter your name:',"") if (username!=null && username!="") { setCookie('username',username,365) } } } </script> </head> <body onLoad="checkCookie()"> </body> </html>
最後更新:2017-04-02 06:52:21
上一篇:
s:select的用法以及注意點
下一篇:
公曆轉農曆函數
Java中反射性能測試
Class.forName() vs Class.loadClass()
POJ 1696 向量叉積
2017深圳雲棲TechInsight活動回顧:動手實驗室-從零搭建一個金融級分布式交易係統
Android之ExpandableListView下拉分組的實現
The method setFilters(InputFilter[]) in the type Editable is not applicable
HTTP狀態碼查詢
使用 Cloud Insight SDK 監控北京空氣質量!
jobing:第一帖
JAVA麵試題-STRINGBUFFER倒序輸出、正則將首字母大寫