關於JavaScipt對象的基本知識 JavaScript是運用“對象化編程”的,又叫“面向對象編程”的。所謂“對象化編程”,意義是把JavaScript能涉及的領域劃分成各種對象,對象後面還連續劃分對象直至很是詳細為止,整個的編程都以對象為出發點,基於對象。何謂對象,小到一個變數,大到網頁文檔、窗
關於JavaScipt對象的基本知識
JavaScript是運用“對象化編程”的,又叫“面向對象編程”的。所謂“對象化編程”,意義是把JavaScript能涉及的領域劃分成各種對象,對象後面還連續劃分對象直至很是詳細為止,整個的編程都以對象為出發點,基於對象。何謂對象,小到一個變數,大到網頁文檔、視窗乃至屏幕,都是對象。這裡將“面向對象”報告JavaScript的運轉環境。
對象的基本知識
對象是可以從JavaScript“勢力範圍”劃分出來的一小塊,可以是一段文字、一張圖片、一個表單(Form)等等。每個對象備它本人的屬性、方式和事件。對象的屬性是反映該對象某些特定的性子的,比如:字元串的長度、圖象的長寬、文字框(Textbox)里的文字等等;對象的方式能關於該對象做一些任務,比喻,表單的“提交”(Submit),視窗的“轉動”(Scrolling)等等;而對象的事件就可以相應發作正在對象上的任務,比喻提交表單發作表單的“提交事件”,點擊連接發作的“點擊事件”。不是整個的對象都有以上三天性質,有些沒有事件,有些惟獨屬性。援用對象的任一“性子”用“<對象名>.<性子名>”這類方式。
基本對象
此刻我們要複習以上學過的內容了——把一些數據典範用對象的角度從頭深造一下。
Number“數字”對象。這個對象用得很少,作者就一次也沒有見過。可是屬於“Number”的對象,也便是“變數”就多了。
屬性
MAX_VALUE用法:Number.MAX_VALUE;返回“最大值”。
MIN_VALUE用法:Number.MIN_VALUE;返回“最小值”。
NaN用法:Number.NaN或許NaN;返回“NaN”。“NaN”(不是數值)正在很早就先容過了。
NEGATIVE_INFINITY用法:Number.NEGATIVE_INFINITY;返回:負無窮大,比“最小值”還小的值。
POSITIVE_INFINITY用法:Number.POSITIVE_INFINITY;返回:正無窮大,比“最大值”還大的值。
toString()用法:<數值變數>.toString();返回:字元串形式的數值。如:若a==123;則a.toString()=='123'。
String字元串對象,聲明一個字元串對象最龐雜、快捷、有用、常常的方式便是間接賦值。
屬性
length用法:<字元串對象>.length;返回該字元串的長度。
方法
charAt()用法:<字元串對象>.charAt(<位置>);返回該字元串位於第<位置>位的單個字元。註意:字元串中的一個字元是第0位的,第二個才是第1位的,起初一個字元是第length-1位的。
charCodeAt()用法:<字元串對象>.charCodeAt(<位置>);返回該字元串位於第<位置>位的單個字元的ASCII碼。
fromCharCode()用法:String.fromCharCode(a,b,c...);返回一個字元串,該字元串每逐個個字元的ASCII碼由a,b,c...等來一定。 indexOf()用法:<字元串對象>.indexOf(<另外一個字元串對象>[,<起始位置>]);該方式從<字元串對象>中查找<另外一個字元串對象>(如果給出<起始位置>就無視以前的位置),如果找到了,就返回它的位置,沒有找到就返回“-1”。整個的“位置”都是從零起頭的。
lastIndexOf()用法:<字元串對象>.lastIndexOf(<另外一個字元串對象>[,<起始位置>]);跟indexOf()相似,可是是從後邊起頭找。
split()用法:<字元串對象>.split(<離開符字元>);返回一個數組,該數組是從<字元串對象>中分離開來的,<離開符字元>決定了分離的地方,它本人不會包含正在所返回的數組中。比喻:'1&2&345&678'.split('&')返回數組:1,2,345,678。關於數組,我們等一下就接頭。
substring()用法:<字元串對象>.substring(<始>[,<終>]);返回原字元串的子字元串,該字元串是原字元串從<始>位置到<終>位置的前一位置的一段。<終>-<始>=返回字元串的長度(length)。如果沒有指定<終>或許指定得逾越字元串長度,則子字元串從<始>位置不停取到原字元串尾。如果所指定的位置不克不及返回字元串,則返回空字元串。
span style="color: #800080;"> substr()用法:<字元串對象>.substr(<始>[,<長>]);返回原字元串的子字元串,該字元串是原字元串從<始>位置起頭,長度為<長>的一段。如果沒有指定<長>或許指定得逾越字元串長度,則子字元串從<始>位置不停取到原字元串尾。如果所指定的位置不克不及返回字元串,則返回空字元串。
toLowerCase()用法:<字元串對象>.toLowerCase();返回把原字元串整個大寫字母都變為小寫的字元串。
toUpperCase()用法:<字元串對象>.toUpperCase();返回把原字元串整個小寫字母都變為大寫的字元串。
Array數組對象。
數組對象是一個對象的集合,裡邊的對象可以是區別典範的。數組的每一個成員對象都有一個“下標”,用來暗示它正在數組中的位置(既然是“位置”,就也是從零起頭的啦)。 數組的概念方式:
var<數組名>=newArray();
多麼就概念了一個空數組。以後要增添數組元素,就用:
<數組名>[<下標>]=...;
註意此處的方括弧不是“可以省略”的意義,數組的下標暗示方式便是用方括弧括起來。 如果想正在概念數組的時辰間接初始化數據,請用:
var<數組名>=newArray(<元素1>,<元素2>,<元素3>...);
例如,varmyArray=newArray(1,4.5,'Hi');概念了一個數組myArray,裡邊的元素是:myArray[0]==1;myArray[1]==4.5;myArray[2]=='Hi'。 可是,如果元素列表中惟唯一個元素,而這個元素又是一個正整數的話,這將概念一個包含<正整數>個空元素的數組。 註意:JavaScript惟唯一維數組!萬萬不要用“Array(3,4)”這類愚蠢的方式來概念4x5的二維數組,大約用“myArray[2,3]”這類方式來返回“二維數組”中的元素。肆意“myArray[...,3]”這類形式的調用實踐上只返回了“myArray[3]”。要運用多維數組,請用這類捏造法:
varmyArray=newArray(newArray(),newArray(),newArray(),...);
實踐上這是一個一維數組,裡邊的每一個元素又是一個數組。調用這個“二維數組”的元素時:myArray[2][3]=...;
屬性 length用法:<數組對象>.length;返回:數組的長度,即數組裡有幾多個元素。它即是數組裡起初一個元素的下標加一。以是,想增添一個元素,只必要:myArray[myArray.length]=...。
方式 join()用法:<數組對象>.join(<離開符>);返回一個字元串,該字元串把數組中的各個元素串起來,用<離開符>置於元素與元素之間。這個方式不影響數組原先的內容。
reverse()用法:<數組對象>.reverse();使數組中的元素次序反過來。如果關於數組[1,2,3]運用這個方式,它將使數組變為:[3,2,1]。
slice()用法:<數組對象>.slice(<始>[,<終>]);返回一個數組,該數組是原數組的子集,始於<始>,究竟<終>。如果不給出<終>,則子集不停取到原數組的掃尾。
sort()用法:<數組對象>.sort([<方式函數>]);使數組中的元素依據一定的次序分列。如果不指定<方式函數>,則按字母次序分列。正在這類環境下,80是比9排得前的。如果指定<方式函數>,則按<方式函數>所指定的排序方式排序。<方式函數>有點難報告,此處只將一些適用的<方式函數>先容給巨匠。
按升序分列數字:
functionsortMethod(a,b){ returna-b; }
myArray.sort(sortMethod);
按降序分列數字:把後面的“a-b”該成“b-a”。 無關函數,請看後面。
Math“數學”對象,提供關於數據的數學計較。後面所提到的屬性和方式,再也不詳細說明“用法”,巨匠正在運用的時辰記著用“Math.<名>”這類格式。
屬性
E 前平常數 e (2.718281828...)。
LN2 返回 2 的自然關於數 (ln 2)。
LN10 返回 10 的自然關於數 (ln 10)。
LOG2E 返回以 2 為低的 e 的關於數 (log2e)。
LOG10E 返回以 10 為低的 e 的關於數 (log10e)。
PI 返回π(3.1415926535...)。
SQRT1_2 返回 1/2 的平方根。
SQRT2 返回 2 的平方根。
方法
abs(x) 返回 x 的相關於值。
acos(x) 返回 x 的反餘弦值(餘弦值即是 x 的角度),用弧度暗示。
asin(x) 返回 x 的歸正弦值。 atan(x) 返回 x 的歸正切值。
atan2(x, y) 返回覆平面內點(x, y)關於應的雙數的幅角,用弧度暗示,其值正在 -π 到 π 之間。
ceil(x) 返回大於即是 x 的最小整數。
cos(x) 返回 x 的餘弦。
exp(x) 返回 e 的 x 次冪 (ex)。
floor(x) 返回小於即是 x 的最大整數。
log(x) 返回 x 的自然關於數 (ln x)。
max(a, b) 返回 a, b 中較大的數。
min(a, b) 返回 a, b 中較小的數。
pow(n, m) 返回 n 的 m 次冪 (nm)。
random() 返回大於 0 小於 1 的一個隨機數。
round(x) 返回 x 四捨五入後的值。
sin(x) 返回 x 的正弦。
sqrt(x) 返回 x 的平方根。
tan(x) 返回 x 的正切。
Date 日期對象。這個對象可以儲存肆意一個日期,從 0001 年到 9999 年,而且可以切確到毫秒數(1/1000 秒)。正在內部,日期對象是一個整數,它是從 1970 年 1 月 1 日零時正起頭計較到日期對象所指的日期的毫秒數。如果所指日期比 1970 年早,則它是一個負數。整個日期時間,如果不指按時區,都採用“UTC”(天下時)時區,它與“GMT”(格林威治時間)正在數值上是同樣的。
定義一個日期對象: var d = new Date;
這個方式使 d 成為日期對象,而且已經有初始值:以後時間。如果要自定初始值,可以用:
var d = new Date(99, 10, 1);
//99 年 10 月 1 日 var d = new Date('Oct 1, 1999'); //99 年 10 月 1 日
等等方式。最佳的方式便是用後面先容的“方式”來嚴格的概念時間。
方法
如下有不少“g/set[UTC]XXX”多麼的方式,它暗示既有“getXXX”方式,又有“setXXX”方式。“get”是得到某個數值,而“set”是設定某個數值。如果帶有“UTC”字母,則暗示得到/設定的數值是基於 UTC 時間的,沒有則暗示基於外地時間或許掃瞄期預設時間的。
如無說明,方式的運用格式為:“<對象>.<方式>”,下同。
g/set[UTC]FullYear() 返回/配置年份,用四位數暗示。如果運用“x.set[UTC]FullYear(99)”,則年份被設定為 0099 年。
g/set[UTC]Year()返回/配置年份,用兩位數暗示。設定的時辰掃瞄器自動加之“19”掃尾,故運用“x.set[UTC]Year(00)”把年份設定為 1900 年。
g/set[UTC]Month()返回/配置月份。 g/set[UTC]Date()返回/配置日期。
g/set[UTC]Day()返回/配置禮拜,0 暗示禮拜天。
g/set[UTC]Hours()返回/配置小時數,24小時制。 g/set[UTC]Minutes()返回/配置分鐘數。
g/set[UTC]Seconds()返回/配置秒鐘數。 g/set[UTC]Milliseconds()返回/配置毫秒數。
g/setTime() 返回/配置時間,該時間便是日期對象的內部搞定方式:從 1970 年 1 月 1
日零時正起頭計較到日期對象所指的日期的毫秒數。如果要使某日期對象所指的時間推遲 1 小時,就用:“x.setTime(x.getTime() + 60 * 60 * 1000);”(一小時 60 分,一分 60 秒,一秒 1000 毫秒)。
getTimezoneOffset() 前來日期對象採用的時區與格林威治時間所差的分鐘數。正在格林威治東方的市區,該值為負,比喻:中國時區(GMT+0800)返回“-480”。
toString() 返回一個字元串,描寫日期對象所指的日期。這個字元串的格式相同於:“Fri Jul 21 15:43:46 UTC+0800 2000”。
toLocaleString() 返回一個字元串,描寫日期對象所指的日期,用外地時間暗示格式。如:“2000-07-21 15:43:46”。 toGMTString() 返回一個字元串,描寫日期對象所指的日期,用 GMT 格式。 toUTCString() 返回一個字元串,描寫日期對象所指的日期,用 UTC 格式。
parse() 用法:Date.parse(<日期對象>);返回該日期對象的內部標明方式。
全局對象
全局對象從不現形,它可以說是虛擬出來的,宗旨正在於把全局函數“對象化”。正在 Microsoft JScript 語言參登科,它叫做“Global 對象”,可是援用它的方式和屬性從來不用“Global.xxx”(何況多麼做會蛻化),而間接用“xxx”。
屬性
NaN 一早就說過了。
方法
eval() 把括弧內的字元串看成標準語句或許標明式來運轉。
isFinite() 如果括弧內的數字是“無窮”的(介於 Number.MIN_VALUE 和 Number.MAX_VALUE 之間)就返回 true;不然返回 false。
isNaN() 如果括弧內的值是“NaN”則返回 true 不然返回 false。
parseInt() 返回把括弧內的內容轉換成整數以後的值。如果括弧內是字元串,則字元串掃尾的數字部份被轉換成整數,如果以字母掃尾,則返回“NaN”。
parseFloat() 返回把括弧內的字元串轉換成浮點數以後的值,字元串掃尾的數字部份被轉換成浮點數,如果以字母掃尾,則返回“NaN”。
toString() 用法:<對象>.toString();把對象轉換成字元串。如果正在括弧中指定一個數值,則轉換過程中整個數值轉換成特定進位。
escape() 返回括弧中的字元串顛末編碼後的新字元串。該編碼運用於 URL,也便是把空格寫成“%20”這類格式。“+”不被編碼,如果要“+”也被編碼,請用:escape('...', 1)。
unescape() 是 escape() 的反過程。解編括弧中字元串成為一般字元串。
函數函數的概念 所謂“函數”,是有返回值的對象或許對象的方式。
函數的種類
常見的函數有:機關函數,如 Array(),能機關一個數組;全局函數,即全局對象里的方式;自概念函數;等等。
自定義函數
定義函數用如下語句:
function 函數名([參數集]) {
...
[return[ <值>];]
... }
此中,用正在 function 以後和函數掃尾的大括弧是不克不及省去的,就算整個函數惟唯一句。 函數名與變數名有同樣的起名規矩,也便是只包含字母數字下劃線、字母排頭、不克不及與保留字重覆等。 參數集無關緊要,但括弧就一定要有。
參數是函數內部向函數內部傳送信息的橋梁,比喻,想叫一個函數返回 3 的立方,你就要讓函數知道“3”這個數值,這時分辰就要有一個變數來接收數值,這類變數叫做參數。 參數集是一個或許多個用逗號離開開來的參數的集合,如:a, b, c。
函數的內部有一至少行語句,這些語句其實不會當即實施,而只當有別的程式調用它時才實施。這些語句中大約包含“return”語句。正在實施一個函數的時辰,碰著 return 語句,函數立刻遏制實施,並返回到調用它的程式中。如果“return”後帶有<值>,則參加函數的同時返回該值。
正在函數的內部,參數可以間接看成變數來運用,並可以用 var 語句來新建一些變數,可是這些變數都不克不及被函數內部的過程調用。要使函數內部的信息能被內部調用,要末運用“return”返回值,要末運用全局變數。
全局變數 正在 Script 的“根部”(非函數內部)的“var”語句所概念的變數便是全局變數,它能正在整個過程的肆意地方被調用、修改。
例如:
function addAll(a, b, c) {
return a + b + c;
} var total = addAll(3, 4, 5);
這個例子成立了一個叫“addAll”的函數,它有 3 個參數:a, b, c,功能是返回三個數相加的效果。正在函數內部,把持“var total = addAll(3, 4, 5);”接收函數的返回值。 更多的時候,函數是沒有返回值的,這類函數正在一些有點嚴格的語言中是叫做“過程”的,比喻 Basic 類語言的“Sub”、Pascal 語言的“procedure”。
屬性
arguments 一個數組,反映外部程式調用函數時指定的參數。用法:間接正在函數內部調用“arguments”。