JavaScript有強大的串處理功能,有了這些串方法,才能編寫(xiě)出豐富多彩的網(wǎng)頁(yè)。
在這一部分里,我們將介紹到如何使用與串對象有關(guān)的方法和屬性。 1。
串對象的length屬性 串對象僅有一個(gè)屬性length,這個(gè)屬性值表示這個(gè)串所包括字符的相對數目。 語(yǔ)法為: stringName。
length 2。串對象的方法 JavaScript提供了多個(gè)串方法以幫助控制顯示信息。
串方法可以分為幾個(gè)大類(lèi),如屬性方法、導航方法等等。下面我們將分類(lèi)介紹。
(1)屬性方法 串的屬性方法指定了普通文本顯示在屏幕上的方式。 它提供了一種理想的方式使主頁(yè)變得更有吸引力。
blink() blink()方法引起文本閃爍,語(yǔ)法形式如下: string。blink(); bold() bold()方法使串變?yōu)榇煮w。
語(yǔ)法形式如下: string。bold(); fontcolor() fontcolor()方法可以改變單個(gè)串的顏色,或者在每次重新裝入頁(yè)面或事件發(fā)生時(shí),改變顏色。
同樣,這個(gè)方法也有一個(gè)相對應的HTML標識-- fontcolor()的語(yǔ)法是 string。fontcolor(color); 在這里,color是一種顏色的合法表示。
italics() italics()方法把串變?yōu)樾斌w,以同其余文字區分開(kāi)來(lái),italics() 的語(yǔ)法如下: string。 italics(); (2)大小寫(xiě)方法 JavaScript嚴格區分字母的大小寫(xiě)。
為了方便地比較兩個(gè)串,就要把它們都轉化為大寫(xiě)或小寫(xiě)。串對象的大小寫(xiě)方法就支持在大小寫(xiě)之間轉換。
toLowerCase() tolowerCase()方法把一個(gè)給定的串中每個(gè)字符轉變成小寫(xiě)狀態(tài)。 語(yǔ)法形式如下: string=stringValue。
toLowerCase(); toUpperCase() 與tolowerCase()方法相反是toUpperCase()方法,它把一個(gè)給定串轉變成大寫(xiě)字符串。 string=stringValue。
toUpperCase(); (3)操作方法 操作方法提供了許多種在一個(gè)文本串內查找字符串的方法,其中包括charAt()、indexO f()、LastIndexOf()和substring()四種方法。我們可以使用這些方法格式化和操作用戶(hù)輸入的串變量,其中charAt()和 substring()兩種方法從一個(gè)串中抽取一個(gè)或多個(gè)字符,剩下的兩個(gè)方法返回待查找值的第一個(gè)字符在串中出現位置的數字值。
charAt() charAt()方法從一個(gè)給定串中返回指定位置的字符。它的使用方法如下: string。
charAt(index); 其中index是一個(gè)在0和小于串長(cháng)度之間的一個(gè)數(串長(cháng)度可以通過(guò)Length屬性得到), substring() substring()方法從一個(gè)大串中返回它的一個(gè)子串。 它的語(yǔ)法形式如下: string。
substring(indexA,indexB) indexA和indexB兩者都是在0和串長(cháng)度之間的數字值。它們是串的兩個(gè)下標。
indexOf() indexOf()方法返回在一個(gè)長(cháng)串中與指定的串匹配的子串的位置。 它從左到右地查找給定的串,語(yǔ)法形式如下: string。
indexOf(searchValue,[fromIndex]); 其中string是indexOf()要在其中查找searchValue的串,而searc hValue是任何想要查找的字符或子串。 fromIndex是一個(gè)可選項,它指定查找開(kāi)始的位置。
fromIndex的范圍與charAt()和Subs tring()相似(0到length-1)。它不能大于或等于length,如果沒(méi)有指定fromIndex,該方法認為其缺省地?并查找整個(gè)串。
indexOf()的返回值是searchValue首次出現的第一個(gè)字符的偏移量(從串的開(kāi)頭算起)。即使指定了fromIndex,該返回值仍是相對于串的開(kāi)頭的(有可能在前面一些的地方出現的se archValue將被忽略)。
lastIndexOf() lastIndexOf()方法與IndexOf()方法類(lèi)似,只是它從右到左地查找串。 lastIndexOf()仍舊給出被查找串的首字符位置,而不是末尾字符的位置。
lastIndexOf()方法的語(yǔ)法形式如下: string。Last indexOf(searchValue); searchValue仍是想要查找的串。
(4)導航方法 使用超文本時(shí)會(huì )接觸到錨(anchor)和鏈路的概念。 錨就如同在網(wǎng)頁(yè)中放置的書(shū)標(你可以很方便地回到那兒);鏈路是對另一頁(yè)面(或相同及不同頁(yè)面的錨)的指引。
anchor() anchor()方法用來(lái)設置一個(gè)錨,它的語(yǔ)法形式很簡(jiǎn)單: string。anchor(anchorName); 考察下面的例子: var indexString="Index"; document。
writeln(indexString。anchor("anchorName")); 這條語(yǔ)句在屏幕上打印文本Index;anchorName是這個(gè)錨真正的名字。
像這樣的錨一般被鏈路用來(lái)跳轉到頁(yè)面中錨的實(shí)際位置。 link() link()的功能是跳轉到指定的目標。
它相當于標準HTML引用(由HREF屬性指定的超文本引用)。它的語(yǔ)法形式也非常簡(jiǎn)單: linkText。
link(href) linkText是屏幕上的文本,href屬性不一定是一個(gè)錨,它也可以是一個(gè)合法的URL引用。下面的例子說(shuō)明如何用link()來(lái)創(chuàng )建直接跳轉到前面創(chuàng )建的錨的鏈路; var indexStirng="Index" document。
writeln(indexString。link("#"+"anchorName")+" ") 這條語(yǔ)句在屏幕上打印鏈路格式的文本Index(通常在下面加下劃線(xiàn));anchorName是錨的實(shí)際的名字。
當單擊這條鏈路時(shí),這個(gè)錨將出現在瀏覽器用戶(hù)窗口的頂部。 請注意:要保證在同一文檔內部的錨的引用中加上#號。
在加#號的時(shí)候,要將它用雙引號括起來(lái)并用加號與完整的引用連起來(lái)。可以參見(jiàn)前面的例子。
如果省略了#號,鏈路的目標就是一個(gè)文件而不是一個(gè)錨。單擊這條鏈就會(huì )使瀏覽器試圖裝入名為anchorName(在本例中)的文件。
因為這。
1.對象字面量創(chuàng )建對象
var obj = { a:1,b:2 };
注意:對象字面量是一個(gè)表達式,這種表達式每次運算都會(huì )創(chuàng )建并初始化一個(gè)新對象,并計算這個(gè)新對象的每個(gè)屬性值。所以如果在循環(huán)體內使用對象字面量,每次循環(huán)時(shí)都會(huì )創(chuàng )建新對象。
2.通過(guò)new運算符創(chuàng )建對象
var obj = new Object(); //創(chuàng )建空對象 var ary = new Array(); //創(chuàng )建空的數組對象
注意:new運算符后面跟的是一個(gè)函數調用,這個(gè)函數被稱(chēng)為構造函數。js中原始類(lèi)型都包含內置的構造函數,也可以自己定義構造函數。
3.通過(guò)立即執行函數創(chuàng )建對象
var obj = (function(){ return {x:1,y:2};}());
注意:在立即執行函數內部一定要有return語(yǔ)句,return出的內容就是待創(chuàng )建的對象。
4.通過(guò)Object.create()創(chuàng )建對象
var obj = Object.create({x:1,y:2});
注意:Object.create()是一個(gè)靜態(tài)函數,傳入原型對象就可以創(chuàng )建繼承此原型對象的對象,例如上面的例子中obj對象繼承了x,y屬性。
Javascript對象定義的幾種方式一.工廠(chǎng)方式:先創(chuàng )建對象,再向對象添加方法和屬性,封閉后調用不要使用new操作符創(chuàng )建對象。
使用這種方法有很多弊端,把方法定義在工廠(chǎng)函數內部的時(shí)候,每次調用的時(shí)候都會(huì )產(chǎn)生新的函數function factory(name,person,address,time){ var tmp=new Object; tmp.name=name; tmp.person=person; tmp.address=address; tmp.workTime=function(){ alert("we start to work at" + time); } return tmp;}var factory1=factory("drugs",100,"huashan Rd",10);var factory2=factory("TCMdrugs",100,"hongqiao Rd",11);factory1.workTime();factory2.workTime();//Here,factory1 and factory2 have different method對這種問(wèn)題雖然可以用下面的方式改進(jìn),但是缺乏很好的封裝性function factory(name,person,address,time){ var tmp=new Object; tmp.name=name; tmp.person=person; tmp.address=address; tmp.workTime=workTime(); return tmp;}function workTime(){ alert("we start to work at" + this.time);}二,構造函數方式,在構造函數內部不創(chuàng )建對象,使用this關(guān)鍵字,使用時(shí)候用new操作符,存在和工廠(chǎng)方式相同的問(wèn)題,重復創(chuàng )建函數。function counstruct(name,person,address,time){ this.name=name; this.person=person; this.address=address; this.workTime=function(){ alert("we start to work at" + this.time); };}三.原型方式:利用prototype屬性來(lái)實(shí)現屬性和方法,可以通過(guò)instanceof 檢查對象類(lèi)型,解決了重復創(chuàng )建函數的問(wèn)題,但不能通過(guò)傳遞參數初始化屬性function Car(){}Car.prototype.color = "red";Car.prototype.doors = 4;Car.prototype.mpg = 23;Car.prototype.showColor = function(){ alert(this.color);};var car1 = new Car();var car2 = new Car();但是如果遇到下面的情況,又出問(wèn)題了Car.prototype.drivers = new Array("mike", "sue");car1.drivers.push("matt");alert(car1.drivers); //outputs "mike,sue,matt"alert(car2.drivers); //outputs "mike,sue,matt"drivers是指向Array對象的指針,Car的兩個(gè)實(shí)例都指向同一個(gè)數組。
四.混合的構造函數/原型方式:針對原型方式的解決方案function Car(sColor, iDoors, iMpg){ this.color = sColor; this.doors = iDoors; this.mpg = iMpg; this.drivers = new Array("mike", "sue");}Car.prototype.showColor = function (){ alert(this.color);};var car1 = new Car("red", 4, 23);var car2 = new Car("blue", 3, 25);car1.drivers.push("matt");alert(car1.drivers);alert(car2.drivers);五.動(dòng)態(tài)原型方式:這種方式是極力推薦的方式,避免了前面幾種方式所出現的問(wèn)題,提供了更友好的編碼風(fēng)格function Car(sColor, iDoors, iMpg){ this.color = sColor; this.doors = iDoors; this.mpg = iMpg; this.drivers = new Array("mike", "sue"); if(typeof Car.initialized == "undefined"){ Car.prototype.showColor = function (){ alert(this.color); }; Car.initialized = true; }}var car1 = new Car("red", 4, 23);var car2 = new Car("blue", 3, 25);car1.drivers.push("matt");alert(car1.drivers);alert(car2.drivers);六.混合工廠(chǎng)方式:和工廠(chǎng)方式有些相似,但采用new關(guān)鍵字實(shí)例化,具有和工廠(chǎng)方式相同的弊端,不推薦使用。
可以參考如下內容:第一種模式:工廠(chǎng)方式[javascript] view plain copy print?var lev=function(){ return "啊打"; }; function Parent(){ var Child = new Object(); Child.name="李小龍"; Child.age="30"; Child.lev=lev; return Child; }; var x = Parent(); alert(x.name); alert(x.lev()); 說(shuō)明:1.在函數中定義對象,并定義對象的各種屬性,,雖然屬性可以為方法,但是建議將屬性為方法的屬性定義到函數之外,這樣可以避免重復創(chuàng )建該方法2.引用該對象的時(shí)候,這里使用的是 var x = Parent()而不是 var x = new Parent();因為后者會(huì )可能出現很多問(wèn)題(前者也成為工廠(chǎng)經(jīng)典方式,后者稱(chēng)之為混合工廠(chǎng)方式),不推薦使用new的方式使用該對象3.在函數的最后返回該對象4.不推薦使用這種方式創(chuàng )建對象,但應該了解第二種模式:構造函數方式[javascript] view plain copy print?var lev=function(){ return "啊打"; }; function Parent(){ this.name="李小龍"; this.age="30"; this.lev=lev; }; var x =new Parent(); alert(x.name); alert(x.lev()); 說(shuō)明:1.與工廠(chǎng)方式相比,使用構造函數方式創(chuàng )建對象,無(wú)需再函數內部重建創(chuàng )建對象,而使用this指代,并而函數無(wú)需明確return2.同工廠(chǎng)模式一樣,雖然屬性的值可以為方法,扔建議將該方法定義在函數之外3..同樣的,不推薦使用這種方式創(chuàng )建對象,但仍需要了解第3種模式:原型模式[javascript] view plain copy print?var lev=function(){ return "啊打"; }; function Parent(){ }; Parent.prototype.name="李小龍"; Parent.prototype.age="30"; Parent.prototype.lev=lev; var x =new Parent(); alert(x.name); alert(x.lev());。
js中的面向對象面向對象在js里有兩個(gè)層次的含義,第一種是會(huì )使用面向對象函數;第二種是構造面向對象函數。
js也是面向對象中的一種寫(xiě)法,不過(guò)相對于java,js是一種弱數據類(lèi)型,并不是嚴格意義上的面向對象。但是jq就是使用面向對象的寫(xiě)法創(chuàng )作出來(lái)的js庫。
面向對象的特點(diǎn)(“抽風(fēng)機”諧音記憶) 面向對象有四個(gè)特點(diǎn): 1. 抽象:抓住核心問(wèn)題 2. 封裝:即把能夠實(shí)現功能的函數寫(xiě)成封裝起來(lái),在面向對象里叫做方法。簡(jiǎn)單來(lái)說(shuō)就是把實(shí)現功能的函數寫(xiě)成方法。
3. 繼承:繼承的意思是,在實(shí)現同一種功能的前提下,新對象可以使用就對象的屬性和方法。 4. 多態(tài):一個(gè)變量在引用不同類(lèi)型的情況下的不同狀態(tài)。
多態(tài)開(kāi)發(fā)在開(kāi)發(fā)組件和模塊化開(kāi)發(fā)的時(shí)候能節省很多資源。舉個(gè)例子說(shuō)明面向對象// 這里的函數名在面向對象里叫做類(lèi)function Create(n, s){// var obj = new Object();// obj叫做實(shí)例,同時(shí)也是對象,面向對象寫(xiě)法中系統會(huì )自動(dòng)創(chuàng )建一個(gè)obj空對象// 對象屬性this.name = n; this.sex = s; // this指針,在這里指的就是這個(gè)對象// 對象方法this.showName = function(){alert(n);}; this.showSex = function(){alert(s);}; // 返回對象// 同樣,面向對象中系統會(huì )自動(dòng)幫我們返回obj(即this)//return obj;//return this;}原型(prototype)原型可以用來(lái)構造函數的屬性和方法,使這個(gè)構造函數的屬性和方法成為公用的。
使用原型的優(yōu)點(diǎn):在內存中節省資源,提高系統性能。下面舉個(gè)例子說(shuō)明原型:Array.prototype.sum = function(){var num = 0; for(var i=0;inum += this[i];}alert(num);};1234567這是一個(gè)用原型構造的數組方法,將求和的sum方法掛在原型上,可以使這個(gè)方法被重復使用,當然,重點(diǎn)是節省內存資源。
使用原型還有一個(gè)優(yōu)點(diǎn),就是優(yōu)先級: 原型的優(yōu)先級類(lèi)似于CSS中的優(yōu)先級,沒(méi)有使用原型的構造函數,就好比CSS中的行內樣式,優(yōu)先級高,而與原型掛鉤的屬性和方法 ,就像是style的內聯(lián)樣式,優(yōu)先級低于行內樣式。所以在調用同一種方法名的時(shí)候,系統會(huì )優(yōu)先調用掛在原型上的方法。
abs(x)
返回數的絕對值。
acos(x)
返回數的反余弦值。
asin(x)
返回數的反正弦值。
atan(x)
以介于 -PI/2 與 PI/2 弧度之間的數值來(lái)返回 x 的反正切值。
atan2(y,x)
返回從 x 軸到點(diǎn) (x,y) 的角度(介于 -PI/2 與 PI/2 弧度之間)。
ceil(x)
對數進(jìn)行上舍入。
cos(x)
返回數的余弦。
exp(x)
返回 e 的指數。
floor(x)
對數進(jìn)行下舍入。
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 對象的原始值。
作用和用法?數學(xué)函數需要什么用什么啊。
聲明:本網(wǎng)站尊重并保護知識產(chǎn)權,根據《信息網(wǎng)絡(luò )傳播權保護條例》,如果我們轉載的作品侵犯了您的權利,請在一個(gè)月內通知我們,我們會(huì )及時(shí)刪除。
蜀ICP備2020033479號-4 Copyright ? 2016 學(xué)習?shū)B(niǎo). 頁(yè)面生成時(shí)間:2.795秒