Chương 3: JavaScript

3.1. T ng quan v Javascript JavaScript là ngôn ng k ch b n ư c g n v i các file HTML. JavaScript là ngôn ng k ch b n ph bi n nh t trên internet, và ho t ng t t trên h u h t các trình duy t ư c dùng ph bi n như Internet Explorer, Firefox, Chrome, Opera, và Safari. S có m t c a JavaScript trên các trang web giúp tăng tính tương tác c a ngư i dùng trên các trang html. Các câu l nh JavaScript ư c nhúng trong m t trang HTML có th áp ng các s ki n c a ngư i s d ng như kích chu t, nh p vào m t form và i u hư ng trang. Ví d ta có th ki m tra các giá tr thông tin mà ngư i s d ng ưa vào mà không c n n b t c m t quá trình truy n trên m ng nào. Trang HTML v i JavaScript ư c nhúng s ki m tra các giá tr ư c ưa vào và s thông báo v i ngư i s d ng khi giá tr ưa vào là không h p l . JavaScript là ngôn ng d a trên i tư ng, có nghĩa là bao g m nhi u ki u i tư ng, ví d i tư ng Math v i t t c các ch c năng toán h c, i tư ng String ph c v cho x lý chu i,… Gi ng v i HTML và Java, JavaScript ư c thi t k c l p v i h i u hành. Nó có th ch y trên b t kỳ h i u hành nào có trình duy t h tr JavaScript. Ngoài ra JavaScript gi ng Java khía c nh an ninh: JavaScript không th c và vi t vào file c a ngư i dùng. Tuy nhiên JavaScript l i có m t s như c i m như: Ho t ng không th ng nh t trên các trình duy t khác nhau. ng ư c khi ngư i dùng t t ch c năng h tr JavaScript c a

Không tương tác tr c ti p ư c v i máy ch . Không ho t trình duy t.

JavaScript không t o ư c các hình nh trên Web.

53

3.2. Nhúng JavaScript vào file HTML Thông thư ng JavaScript ư c b sung vào trang HTML theo các cách sau 3.2.1. S

Vi t tr c ti p các câu l nh và các hàm trong c p th <SCRIPT> S d ng các file ngu n JavaScript Vi t mã JavaScript tr c ti p trong các thu c tính s ki n c a tài li u HTML
d ng th SCRIPT

Các câu l nh và các hàm JavaScript có th theo cú pháp sau:

ư c ưa tr c ti p vào trang HTML

<SCRIPT LANGUAGE=”JavaScript”> // JavaScript code </SCRIPT> Các th <SCRIPT> có th xu t hi n trong ph n <HEAD> hay <BODY> c a file HTML. N u t trong ph n <HEAD>, nó s ư c t i và s n sàng trư c khi ph n còn l i c a văn b n ư c t i. Thông thư ng thì ngư i ta hay t các th Script gi a c p th <Head> c a trang web. Có m t s trình duy t cũ không h tr JavaScript. Do v y m b o mã JavaScript không xu t hi n trên trình duy t, ngư i ta thư ng t chúng trong các c p th chú thích c a HTML như cú pháp dư i ây: <SCRIPT LANGUAGE=”JavaScript”> <!-- From here the JavaScript code hidden //JavaScript code // --> </SCRIPT>
3.2.2. S d ng m t file ngu n JavaScript

Ngoài cách ưa tr c ti p mã ngu n JS vào trang HTML, d b o trì, nâng c p các trang Web ngư i ta thư ng tách riêng mã JS ra m t file riêng và nhúng nó vào trang HTML b ng cú pháp sau : <SCRIPT SRC="file_name.js"> .... </SCRIPT> Cách s d ng này r y h u d ng cho vi c chia s các hàm dùng chung cho nhi u trang khác nhau. Thu c tính SRC có th ư ng d n tuy t i. ư c nh rõ b ng a ch URL, các liên k t ho c các

54

Các file JavaScript bên ngoài không ư c ch a b t kỳ th HTML nào. Chúng ch ư c ch a các câu l nh JavaScript và nh nghĩa hàm.
3.2.3. Th <NoScript> và </NoScript>

C p th này dùng nh rõ n i dung thông báo cho ngư i s d ng bi t trình duy t không h tr JavaScript. Khi ó trình duy t s không hi u th <NOSCRIPT> và nó b l i, còn o n mã n m trong c p th này s ư c Navigator hi n th . Ngư c l i, n u trình duy t có h tr JavaScript thì o n mã trong c p th <NOSCRIPT> s ư c b qua. Tuy nhiên, i u này cũng có th x y ra n u ngư i s d ng không s d ng JavaScript trong trình duy t c a mình b ng cách t t nó i. <NOSCRIPT> <B> Trang này có s d ng JavaScript. Do ó b n c n s d ng trình duy t m i hơn có h tr JavaScript ho c b n ph i b t ch c năng h tr JavaScript n u nó b t t.</B> </NOSCRIPT> Hi n th văn b n Trong h u h t các ngôn ng l p trình, m t trong nh ng kh năng cơ s là hi n th ra màn hình m t dòng text. Trong JavaScript, ngư i l p trình cũng có th i u khi n vi c xu t ra màn hình trình duy t các dòng văn b n b ng hai phương th c write() và writeln() c a i tư ng document. Cách g i m t phương th c c a m t i tư ng như sau: 3.3.

object_name.property_name Như v y xu t chu i văn b n ra màn hình ta dùng câu l nh: document.write(Chu i_văn_b n); document.writeln(Chu i_văn_b n); Trong ó Chu i_văn_b n hoàn toàn có th là o n mã HTML. S khác nhau c a hai phương th c này là:write() xu t ra màn hình xâu Text nhưng không xu ng dòng, còn cách th c writeln() sau khi vi t xong dòng Text t ng xu ng dòng. Ví d 3.1: <HTML> <HEAD> <TITLE>Phuong thuc Document.Write va Document.writeln</TITLE> </HEAD> <BODY> <SCRIPT LANGUAGE="JavaScript">

55

<!-- HIDE FROM OTHER BROWSERS document.writeln("<h2>Example</h2>"); document.write("<b>Welcome to our site.</b>"); document.write("What is your name?"); // STOP HIDING FROM OTHER BROWSERS --> </SCRIPT> </BODY> </HTML> Trên trình duy t s xu t hi n các dòng văn b n sau

3.4. Các lo i h p tho i trong JavaScript JavaScript h tr kh năng cho phép ngư i l p trình t o ra các h p tho i tương tác v i ngư i s d ng mà không làm nh hư ng n vi c xu t n i dung trang. Có hai lo i th p tho i trong JS là alert và Prompt
3.4.1. H p tho i Alert

H p tho i này thư ng ư c dùng thông báo n ngư i dùng m t câu thông báo. Khi xu t hi n h p tho i này ngư i dùng ph i nh n váo nút OK m i có th quay l i làm vi c v i trang web ang m . Cú pháp: alert(Câu_thông_báo); Thông thư ng, câu l nh alert() ư c s d ng trong các trư ng h p: Thông tin ưa và form không h p l K t qu sau khi tính toán không h p l Khi d ch v chưa s n sàng Ví d 3.2: truy nh p d li u

3.4.2.

H p tho i Prompt

H p tho i alert()ch cho phép thông báo v i ngư i s d ng ch chưa th c s giao ti p v i ngư i s d ng. giao ti p v i ngư i s d ng JS có l nh prompt(). Cú pháp: Prompt(Câu_thông_báo,Giá_tr _nh p_ng m_ nh) Tương t như alert(), prompt() t o ra m t h p h i tho i v i m t dòng thông báo do ta ưa vào, nhưng ngoài ra nó còn cung c p m t trư ng nh p d li u vào. Ngư i s d ng có th nh p vào trư ng ó r i kích vào OK. Khi ó, ta có th x lý d li u do ngư i s d ng v a ưa vào. Ví d 3.3: H p h i tho i g m m t dòng thông báo, m t trư ng nh p d li u, m t nút OK và m t nút Cancel. Chương trình này s h i tên ngư i dùng và sau ó s hi n th m t thông báo ng n s d ng tên m i ưa vào. Ví d ư c lưu vào file Hello.html.
<HTML> <HEAD> <TITLE> JavaScript Dialog </TITLE> <SCRIPT LANGUAGE= “JavaScript”> var name=window.prompt(“Hello! What is your name ?”,””); document.write(“Hello ” + name + “ Welcome to our website ”); </SCRIPT> </HEAD> <BODY> </BODY> </HTML>

Khi duy t có k t qu :

tr Ví d này hi n th d u nh c nh p vào tên v i phương th c window. if (r==true){ alert("B n v a ch n OK!"). Ví d : <html> <head> <script type="text/javascript"> function show_confirm(){ var r=confirm("B n hãy nh n m t nút"). Giá t ư c s ư c ghi trong bi n có tên là name. Bi n name ư c k t h p v i các chu i khác và ư c hi n th trong c a s c a trình duy t nh phương th c document.write. } } </script> </head> <body> . 3.3. Khi xu t hi n h p tho i confirm. N u nh n vào nút OK hàm s tr v giá tr True còn n u nh n vào nút Cancel hàm s tr v giá tr false. H p tho i Confirm H p tho i confirm ư c s d ng yêu c u ngư i dùng xác nh n m t ho t ng nào ó. ngư i dùng s ph i n vào nút “OK” ho c nút “Cancel” x lý. Cú pháp: confirm(thông_báo). } else{ alert("B n v a ch n Cancel!").4.prompt.

5. d ng sau ký t Không Tên bi n không phân bi t ch hoa và ch thư ng t tên bi n trùng v i tên các t khóa. ho c Var Tên_bi n=Bi u_th c. Bi n và ph m vi c a bi n Cách khai báo bi n Có hai cách khai báo bi n là khai báo tư ng minh và không tư ng minh Khai báo tư ng minh: Var Tên_bi n. eval extends false final finally float for function goto if implements import in instanceof int interface long native new null package parseFloat parseInt private protected public return short static super switch synchrinized this throw throws transient true try var void while with Các t khóa trong JavaScript Abstract Boolean Break Byte Case Catch Char class const continue default do double else - 59 . Qui t c - t tên bi n u b ng ch hay d u g ch dư i. m u tên m t bi n nhưng có th s Tên bi n trong JavaScript ph i b t Các ch s không ư c s d ng u tiên. Khai báo không tư ng minh: Tên_bi n=Bi u_th c.<input type="button" onclick="show_confirm()" value="Hi n h p tho i Confim" /> </body> </html> 3.

. r ng ch s H cơ s 8 (h bát phân) . ph i có ít nh t m t ch s theo sau d u ch m hay E. Bi n c c b : Ch ư c truy c p trong ph m vi chương trình mà nó khai báo. ki u logic và ki u chu i.87. chú ý u tiên ph i khác 0.có th bi u di n s nguyên theo cơ s 10. trong chu i s d ng ( \" ).). Bi n c c b ư c khai báo trong m t hàm v i các khai báo tư ng minh Khác v i các ngôn ng khác.\” ”). Ki u nguyên (INTERGER) S nguyên có th ư c bi u di n theo ba cách: H cơ s 10 (h th p phân) .write(“ \”This text inside quotes.85E4. " hay '. 9.. ki u d u ph y ng. ‘Java Script’.s nguyên có th bi u di n dư i d ng bát phân v i u tiên là s 0.Ph m vi c a bi n Trong JavaScript có hai ki u bi n Bi n toàn c c: Có th ư c truy c p t b t kỳ âu trong ng d ng.98E-3 Ki u Logic (BOOLEAN) Ki u logic ư c s d ng ch hai i u ki n : úng ho c sai. -0. ch s H cơ s 16 (h th p l c phân) . Các ki u d li u Trong JavaScript.. Ví d : 9. '. Trong JavaScript ta không c n ph i nh ki u d li u khi khai báo Chú ý: - 3. 60 . D u ch m th p phân (. . Ki u d u ph y ng (FLOATING POINT) M t giá tr có ki u d u ph y ng có 4 thành ph n sau: Ph n nguyên th p phân. Ví d : “Hello world”.6. trong JS không có khai báo h ng s . Ki u chu i (STRING) M t giá tr ki u chu i ư c bi u di n b i không hay nhi u ký t ư c t trong c p d u " . “Welcome to my website” bi u di n d u nháy kép ( " ). phân bi t ki u d u ph y ng v i ki u s nguyên. Ph n dư. Ph n mũ. Mi n giá tr c a ki u này ch có hai giá tr true ho c false.87E14. ví d : document.s nguyên có th bi u di n dư i d ng th p l c phân v i hai ch s u tiên là 0x.. có b n ki u d li u sau ây: ki u s nguyên.

Bên c nh ó JavaScript còn h tr m t s ki u toán t gán rút g n. ngư c l i nh n giá tr valueFalse. bi u th c nh n giá tr valueTrue. 3.7. M t toán t có th tr l i m t giá tr ki u s . ki u chu i hay ki u logic. chu i. logic và logic bitwise.7. trong trư ng h p ngư c l i nó nh n giá tr "Khong". Bi u th c và các toán t Bi u th c và phân lo i bi u th c S k t h p gi a các bi n. so sánh. V cơ b n có ba ki u bi u th c trong JavaScript: S h c: là bi u th c tr v m t giá tr s . Sau ây là m t s toán t so sánh trong JavaScript: 61 .1. Ki u gán thông thư ng x=x+y x=x-y x=x*y x=x/y x=x%y Ki u gán rút g n x+=y x-=y x*=y x/=y x%=y So sánh Ngư i ta s d ng toán t so sánh so sánh hai toán h ng và tr l i giá tr úng hay sai ph thu c vào k t qu so sánh. JavaScript cũng h tr bi u th c i u ki n. Gán Toán t gán là d u b ng (=) nh m th c hi n vi c gán giá tr c a toán h ng bên ph i cho toán h ng bên trái. cú pháp như sau: (condition) ? valueTrue : valueFalse N u i u ki n condition ư c ánh giá là úng.7. Ví d : vehuu = (Tuoi>60) ? "Huu" : "Khong" Trong ví d này bi n vehuu ư c gán giá tr "Huu" n u giá tr c a bi n Tuoi l n hơn 60. các giá tr và các toán t tr v m t giá tr nào ó ư c g i là m t bi u th c (expression). Các lo i toán t Toán t ư c s d ng th c hi n m t phép toán nào ó trên d li u.2. s h c. Ví d "Hello" + " world!" tr v 1 giá tr ki u chu i là Hello world ! Logic: Là bi u th c tr v 1 giá tr ki u logic.3. Các toán t trong JavaScript có th ư c nhóm thành các lo i sau ây: gán. 3. Ví d bi u th c (1+1 ) tr v giá tr s là 2 Chu i: Là bi u th c cho k t qu là 1 chu i. Ví d temp>32 có th nh n giá tr sai.

== != > >= < <= Tr l i giá tr Tr l i giá tr Tr l i giá tr Tr l i giá tr ph i Tr l i giá tr Tr l i giá tr ph i úng n u toán h ng bên trái b ng toán h ng bên ph i úng n u toán h ng bên trái khác toán h ng bên ph i úng n u toán h ng bên trái l n hơn toán h ng bên ph i úng n u toán h ng bên trái l n hơn ho c b ng toán h ng bên úng n u toán h ng bên trái nh hơn toán h ng bên ph i úng n u toán h ng bên trái nh hơn ho c b ng toán h ng bên S h c Bên c nh các toán t c ng (+).vào m t bi n. N u ++ hay -. úng n u c expr1 || expr2 Là toán t logic OR. tr l i giá tr expr1 và expr2 cùng úng. tr l i ph n dư khi chia var1 cho var2 i d u c a 1 toán h ng. Ví Logic JavaScript h tr các toán t logic sau ây: expr1 && expr2 Là toán t logic AND. như y= x++. Chu i Khi ư c s d ng v i chu i. nhân (*). N u ++ ng trư c x. giá tr c a x ư c gán cho y trư c khi nó ư c tăng hay gi m. tr (-). toán t d :"Hello" + " world!" ư c "Hello world!" + ư c coi là k t h p hai chu i.v i tên bi n (là x trong trư ng h p này).ng sau x. x s ư c tăng ho c gi m trư c khi giá tr x ư c gán cho y. Toán t này tăng var lên 1 (có th bi u di n là ++var) Toán t này gi m var i 1 (có th bi u di n là --var) N u ta gán giá tr c a toán t ++ hay -. chia (/) thông thư ng. có th có các k t qu khác nhau ph thu c vào v trí xu t hi n trư c hay sau c a ++ hay -. JavaScript còn h tr các toán t sau ây: var1 % var2 var++ var-Chú ý Toán t ph n dư. 62 . tr l i giá tr úng n u ít nh t m t trong hai expr1 và expr2 úng.

tr l i giá tr 1 n u hai bit có giá tr khác nhau Ngoài ra còn có m t s toán t d ch chuy n bitwise. sau ó l n lư t th c hi n các phép toán trên t ng bit. Ví d : 2<<3 tr thành 16 (s nh phân 10 tr thành s nh phân 10000) Toán t d ch ph i. 63 . tr l i giá tr 1 n u m t trong hai bit là 1. giá tr l i ư c chuy n thành ki u c a toán h ng bên trái. D ch chuy n toán h ng trái sang trái m t s lư ng bit b ng toán h ng ph i. C u trúc i u khi n Có th chia các l nh c a JavaScript thành ba nhóm sau: 3. Sau khi d ch chuy n. Bitwise V i các toán t thao tác trên bit.8. L nh l p. Các bit b chuy n sang ph i b m t và d u c a toán h ng bên trái ư c gi nguyên. Các bit b chuy n sang trái b m t và 0 thay vào phía bên ph i. Toán t bitwise XOR. Ví d : 16>>3 tr thành 2 (s nh phân 10000 tr thành s nh phân 10) Các toán t bitwise vi t d ng rút g n: Ki u bitwise thông thư ng x = x << y x = x >> y x = x >>> y x=x&y x=x^y x=x|y Ki u bitwise rút g n x << = y x .8. Câu l nh i u ki n IF Câu l nh i u ki n cho phép ta ki m tra m t i u ki n nào ó và th c hi n m t nhóm l nh nào y d a trên k t qu c a i u ki n v a ki m tra. Toán t bitwise OR. u tiên giá tr ư c chuy n dư i d ng s nguyên 32 bit. Sau ây là các toán t d ch chuy n: << Toán t d ch trái.! expr Là toán t logic NOT ph nh giá tr c a expr. & | ^ Toán t bitwise AND.1. D ch chuy n toán h ng trái sang ph i m t s lư ng bit b ng toán h ng ph i. tr l i giá tr 1 n u c hai bit cùng là 1.>> y x >>> = y x&=y x^=y x|=y >> 3. Giá tr ư c chuy n thành s nguyên 32 bit trư c khi d ch chuy n. L nh i u ki n.

} else{ document. Ví d : Tìm max trong 2 s a và b if (a>b){ document. nó cho phép ch ra nhóm l nh ph i th c hi n n u i u ki n là sai. Cú pháp: switch (bieu_thuc){ case gia_tri_1: //mã l nh th c hi break. ……. } 3.Cú pháp if ( < i u ki n> ){ //Các câu l nh v i i u ki n úng } else{ //Các câu l nh v i i u ki n sai } Nhóm l nh sau else không b t bu c ph i có. default: //mã l nh th c hi h p } Ví d : <script type="text/javascript"> n khi bieu_thuc==gia_tri_1 n khi bieu_thuc==gia_tri_2 n khi bieu_thuc==gia_tri_n n khi không có giá tr nào phù 64 . case gia_tri_2: //mã l nh th c hi break.8.write("S l n là: " + a). case gia_tri_n: //mã l nh th c hi break.write("S l n là: " + b). Câu l nh l a ch n switch Câu l nh l a ch n switch s ánh giá m t bi u th c và tương ng v i các t ng giá tr khác nhau c a bi u th c ó s th c hi n các o n chương trình khác nhau.2.

Cú pháp: for (initExpr. Vòng l p FOR m y Vòng l p for thi t l p m t bi u th c kh i u .write("Th tư").write("Ch Nh t"). case 3: document. Tuesday=2. case 6: document. sau ó l p m t o n mã cho n khi bi u th c < i u ki n> ư c ánh giá là úng. var d=new Date().3.getDay(). case 4: document. etc. break. break.write("Th b y").//Ví d cho bi t ngày hi n t i là th //Monday=1.write("Th ba"). bi u th c incrExpr ư c ánh giá l i.write("Th sáu"). break. theDay=d. case 2: document. < i u ki n> . switch (theDay){ case 0: document. break. case 1: document.write("Th hai").initExpr.write("Th năm"). incrExpr){ //Các l nh } Ví d : Ví d dư i ây in ra màn hình b ng c u chương ư c th c hi n trong khi l p <SCRIPT LANGUAGE= "JavaScript"> 65 . break.8. } </script> 3. Sau khi k t thúc m i vòng l p. case 5: document. break. break.

} document.y<10.write("<td width=30 align='center'> <b>" +i+"</b> </td>"). } document.i++){ document.write("<\/table>"). x++) { document.write("</tr>").write("<tr><td width=30 align='center' bgcolor='#BFD6FE' > <b>"+x+"</b><\/td>"). x<10 .write( "<td>"+x*y +"<\/td>").</td>"). WHILE Vòng l p while l p kh i l nh ch ng nào < i u ki n> còn ư c ánh giá là úng Cú pháp: .i<10. for ( var y=1.y++){ document.write("<\/tr>"). for (var x=1. } document. </SCRIPT> K t qu thu ư c như sau: 3.8.document. for (var i=1.write("<h2>B ng c u chương</h2><table border=1 cellpadding=2 ><tr bgcolor='#BFD6FE'><td width=30>&nbsp.4.

y++. var x=1.write("<tr><td width=30 align='center' bgcolor='#BFD6FE' ><b>"+x+"</b><\/td>").write("</tr>"). và th c hi n bư c l p ti p theo.5. } document.8. } document. } document.write("<\/tr>"). i++. var y=1. x++.while (< i u ki n>){ //Các câu l nh th c hi n trong khi l p } Ví d : o n chương trình dư i ây s d ng câu l nh while gi ng như ví d trên. Câu l nh Break và Continue break: k t thúc vòng l p và thoát ra kh i vòng l p continue: d ng bư c l p hi n th i. while (i<10){ document.write( "<td>"+x*y +"<\/td>").write("<h2>B ng c u chương</h2><table border=1 cellpadding=2 ><tr bgcolor='#BFD6FE'><td width=30>&nbsp. in ra b ng c u chương <SCRIPT LANGUAGE= "JavaScript"> document.write("<td width=30 align='center'><b>"+i+"</b></td>"). while (x<10) { document.write("<\/table>").</td>"). Hai câu l nh này s d ng trong các vòng l p for ho c while 67 . while (y<10){ document. </SCRIPT> 3. var i=1.

3. for (var x in window) document.." ). <HTML> <HEAD> <TITLE>Ví d câu l nh For-in</TITLE> <SCRIPT LANGUAGE= "JavaScript" > document.2.. </SCRIPT> </HEAD> <BODY> </BODY> </HTML> 3. [.IN i tư ng duy t qua t t c các thu c tính (properties) c a m t Câu l nh này ư c s d ng i tư ng.writeln(" "+x+".write("Các thu c tính c a i tư ng window: <BR>").. K t qu ư c minh ho trên hình 5.. Cú pháp i tư ng ư c g i this[.9.paramN]) 3. Câu l nh FOR.9. thư ng là i tư ng hi n th i trong phương th c ho c trong hàm. Câu l nh NEW L nh new ư c dùng Cú pháp t o ra m t th hi n m i c a m t i tư ng objectVar = new objectType(param1 [. Cú pháp for (<variable> in <object>){ //Các câu l nh } Ví d Ví d sau s l y ra t t c các thu c tính c a i tư ng Window và in ra giá tr c a m i thu c tính.property] 68 .1.9.param2].2.3. THIS T khoá this ư c s d ng ch i tư ng hi n th i. Các câu l nh thao tác trên 3.9.

Khai báo và s 3.. WITH L nh này ư c s d ng thi t l p i tư ng ng m nh cho m t nhóm các l nh.last_name + " " + this.first_name + "<BR>" ). this. Hàm có th là thu c tính c a m t i tư ng.9.. trong trư ng h p này nó ư c xem như là phương th c c a i tư ng ó. Cú pháp with (object){ // statement } 3. b n có th s d ng các thu c tính mà không c p n i tư ng. this. 69 .sex=sex. age. Hàm printStats ư c t o ra là phương th c c a i tư ng person <HTML> <HEAD> <TITLE>Function Example </TITLE> <SCRIPT LANGUAGE= "JavaScript"> function person(first_name.4. sex) { this. Cú pháp function fnName([param1]. Hàm t d ng hàm nh nghĩa JavaScript cho phép s d ng các hàm. this.age=age.10.printStats=printStats. last_name..10.[param2]. this. } function printStats() { with (document) { write (" Name :" + this..[paramN]){ //function statement } Ví d : Ví d sau minh ho cách th c t o ra và s d ng hàm như là thành viên c a m t i tư ng. M c dù không nh t thi t ph i có. Ta s d ng cú pháp sau khai báo m t hàm trong JavaScript.1. B i vì JavaScript là ngôn ng có tính nh ki u th p nên không c n nh nghĩa ki u tham s và giá tr tr v c a hàm.last_name=last_name. song các hàm có th có m t hay nhi u tham s truy n vào và m t giá tr tr v .3.first_name=first_name.

"Male").write("<br />" + eval("2+2")). } } person1= new person("Thuy". "Nguyen Bao". write("Sex :"+this.document. person4= new person("Hoan". "23". person2. "Do Van". "24". "23".write("<br />" + eval(x+17)).write("Age :"+this.printStats(). </SCRIPT> </HEAD> <BODY> </BODY> </HTML> 3. "24". Hàm eval Hàm eval ánh giá ho c th c hi n 1 chu i bi u di n m t o n mã JavaScript. nó s phân tích chu i ó như o n mã JavaScript. document. câu l nh Eval s chuy n m t chu i bi u di n o n mà JavaScript thành các câu l nh JavaScript và th c thi chúng.printStats(). "Female"). </script> parseInt Hàm này chuy n m t chu i s thành s nguyên v i cơ s là tham s th hai (tham s này không b t bu c). "Dau Bich". person3= new person("Binh". Hàm này thư ng ư c s d ng chuy n các s nguyên sang cơ s 10 và m b o r ng các d li u ư c nh p dư i d ng ký t ư c chuy n 70 . u tiên câu l nh Eval xác nh n u tham s truy n vào là m t chu i h p l . "Male").printStats().age+"<BR>").2. M t s hàm có s n JavaScript cung c p m t s hàm có s n ư c g i tr c ti p mà không g n v i m t i tư ng nào. person2= new person("Chung".10.y=20. document.write(x*y)").printStats(). Nói cách khác.sex+"<BR>"). "Male"). Cú pháp: returnval=eval (b t kỳ bi u th c hay l nh h p l Java) Ví d : trong <script type="text/javascript"> eval("x=10. person3. "Nguyen Nhat". person1. person4.

Cách 2: Khai báo m t i tư ng m ng v i các giá tr c a các ph n t var myCars=new Array("Honda ". N u t hai d u ph y vào hàng. thì m ng s ư c t o v i nh ng giá tr tr ng cho nh ng ph n t chưa ư c nh nghĩa như ví d dư i ây Ví d : T o ra m t m ng v i 2 ph n t ư c kh i u và m t ph n t r ng: fish = [“Lion”. fish[0] là “Lion”. Khai báo m t m ng 3. ”Surgeon”] V i bi u th c này."Volvo". cho phép lưu tr nhi u giá tr khác nhau thông qua 1 bi n duy nh t. Cú pháp parseFloat (string) M ng trong JavaScript M ng trong JavaScript là m t lo i bi n c bi t.thành s trư c khi tính toán. và fish[2] chưa ư c nh nghĩa 71 ."BMW"). myCars[0]="Honda". Cú pháp parseInt (string. fish[2] là ”Surgeon”. myCars[1]="Volvo". radix]) Hàm parseFloat Hàm này gi ng hàm parseInt nhưng nó chuy n chu i thành s bi u di n dư i d ng d u ph y ng. hàm parseInt s c và chuy n d ng chu i n v trí nó tìm th y ký t không ph i là s .1. Ta có th khai báo m t m ng b ng 1 trong 3 cách sau : Cách 1: Khai báo m t i tư ng m ng và gán giá tr cho t ng ph n t c a m ng."BMW"]. Ta không c n ph i ch nh rõ t t c các ph n t trên m ng m i. Ngoài ra hàm này còn c t d u ph y ng. myCars[2]="BMW". ngư i ta thư ng lưu tr chúng b i cùng m t bi n m ng. Khi các giá tr có quan h v i nhau theo m t phương di n nào ó. nh s n Cách 3: Khai báo tr c ti p các giá tr dư i d ng m ng var myCars=[" Honda ".11."Volvo". Trong trư ng h p d li u vào không h p l . Cách lưu tr này giúp vi c truy c p giá tr và c p nh t các giá tr c a chúng ư c d dàng b ng cách s d ng các vòng l p.11. 3. . var myCars=new Array(). [.

Thay ư cb t u t 0.11.2.Chú ý: N u ta khai báo m t s giá tr true/false trong m ng thì ki u c a chúng s ư c hi u là s ho c logic thay vì ki u chu i.write(myCars[0]). Ví d : myCars[0]= “Ford”. 3. Truy c p các ph n t c a m ng M i ph n t trong m ng u có ch s c a nó. 3. Các thu c tính và phương th c c a m ng Các thu c tính Thu c tính Mô t constructor length prototype Hàm t o Prototype (m u ban u) cho i tư ng m ng Tr v s ph n t c a m t m ng Cho phép ta thêm vào các thu c tính ho c phương th c cho m t i tư ng m ng Các phương th c Phương th c Mô t concat() join() pop() push() reverse() shift() K t h p hai hay nhi u m ng l i và tr v b n sao c a m ng ã n i K t h p các ph n t c a m t m ng l i thành m t chu i Lo i b ph n t cu i cùng c a m t m ng và tr v ph n t Thêm m t ph n t m i vào m t m ng và tr v o ngư c th t các ph n t trong màng Lo i b ph n t u tiên c a m ng và tr v ph n t ó ó dài m i c a m ng 72 . Các ch s th truy c p n các ph n t c a m ng thông qua cú pháp sau: Cú pháp: Bi n_m ng[Ch _s ] Ví d : V i m ng myCars khai báo s in ra màn hình ch Honda. ta có trên câu l nh document. i các giá tr trong m t m ng Ta có th c p nh t l i các giá tr trong m t m ng ã có thông qua tên bi n m ng và ch s c a ph n t theo cú pháp sau: Cú pháp: Bi n_m ng[Ch _s ]=giá_tr _m i.11.3.

"Caveman". "Mango"].salary=null. this.jobtitle. } var fred=new employee("Fred Flintstone".slice() sort() splice() toString() unshift() valueOf() L a ch n m t ph n c a m ng và tr v m t m ng m i S p x p các ph n t c a m t m ng Thêm và lo i b các ph n t c a m ng Chuy n i m ng thành chu i và tr v chu i k t qu u m ng và tr v giá tr m i Thêm m t ph n t m i vào Tr v các giá tr nguyên th y c a m t m ng Các ví d v các phương th c c a m ng: Mã ngu n <script type="text/javascript"> var fruits = ["Banana". document. document.write(fruits.write("New length: " + fruits.prototype. "Apple".length).Tove.length=5. "Orange". fruits.born){ this. 1970).Cecilie.jobtitle=jobtitle. document. </script> <script type="text/javascript"> var fruits = ["Banana". "Mango"].salary=20000. employee.write("Original length: " + fruits.constructo r).Kai Jim.write("<br />"). </script> <script type="text/javascript"> var parents = ["Jani". fred.Lone 73 .salary). </script> <script type="text/javascript"> function employee(name. document. "Kai K t qu trên trình duy t function Array() { [native code] } Original length: 4 New length: 5 20000 Jani.length). "Orange".Borge.name=name.born=born. var brothers = ["Stale". "Apple".Stale. this. document. "Tove"].write(fred.

"Mango"]. "Apple". document. "Apple".write(fruits. document.Orange. </script> <script type="text/javascript"> var fruits = ["Banana". document.Apple.shift() + "<br />").push("Lemon". "Orange". "Orange". </script> <script type="text/javascript"> var fruits = ["Banana".join(" and ")). "Apple". document.Orange.Jim".join("+") + "<br />").Orange.pop() + "<br />").Mango 74 .Apple. Banana.Banana Banana Orange.write(fruits.Apple.write(fruits. document. </script> <script type="text/javascript"> var fruits = ["Banana". document.Lemon. "Mango"]. document.write(fruits). </script> <script type="text/javascript"> var fruits = ["Banana". document. "Orange". document. var family = parents. "Borge"].join() + "<br />"). document. var children = ["Cecilie".Mango. "Mango"]. "Lone"].Mango Banana+Orange+Apple+Mang o Banana and Orange and Apple and Mango Mango Banana. Kiwi.write(fruits.write(fruits + "<br />").write(fruits.concat(brothers.push("Kiwi") + "<br />"). </script> <script type="text/javascript"> var fruits = ["Banana".write(fruits)." Pineapple") + "<br />"). "Apple". children).Apple Apple Banana.write(fruits. "Apple". document.write(family).pop() + "<br />").reverse()).Mango Orange Apple.write(fruits.write(fruits. "Mango"]. "Mango"]. document.Apple.Orange 5 7 Banana. document. "Orange". "Orange".Orange.write(fruits.Pineapple Mango.

"100".25.write(fruits). </script> <script type="text/javascript"> function sortNumber(a.Banana.5. document. document.40.Mango Apple. </script> <script type="text/javascript"> var fruits = ["Banana". "Orange".Apple. document. "Apple".Apple. b){ return a .splice(2.Orange.1) + "<br />").Orange 1.write(fruits. "1"]. document. </script> <script type="text/javascript"> var fruits = ["Banana".slice(1) + "<br />").sort(sortNumber)) . document. </script> <script type="text/javascript"> var fruits = ["Banana".write(fruits. document.write(fruits. "Apple".Mango 5 7 Lemon.100 Removed: Banana. document.write("Removed: " + fruits. "Orange". "Orange". "Mango"].sort()).Pineapple.Apple.slice(-2) + "<br />"). "40".write(fruits.b.write(fruits). Mango Banana. "Apple". "Orange". "Mango"]. "25". </script> <script type="text/javascript"> var fruits = ["Banana". "Orange".write(fruits.10.toString())."Lemon") + "<br />"). "Apple". "5".write(fruits + "<br />").Banan 75 . document.Mango. "Apple". document.Lemon.document.write(fruits.slice(0. "Mango"]. </script> <script type="text/javascript"> var fruits = ["Banana". } var n = ["10".Orange. "Mango"].Orange.unshift("Kiw Banana Orange.Kiwi.write(fruits).Mango Banana.shift() + "<br />").Apple. document. "Mango"]. document.Mango Apple.write(fruits.write(n. document.0.

document. it only returns undefined! Banana.write(fruits).valueOf()).i") + "<br />").Apple. M i s ki n có th d n t i vi c th c hi n m t o n mã l nh (g i là các chương trình x lý s ki n) giúp cho chương trình có th tương tác m t cách thích h p."Pineapple") + "<br />"). onChange. onChange. onChange. Các i tư ng này s ư c trình bày k hơn trong ph n sau. Chương trình x lý s ki n ư c xác nh là m t thu c tính c a m t th HTML như cú pháp dư i ây: <tagName eventHandler = "JavaScript Code or Function"> Ví d sau g i hàm CheckEmail() m i khi giá tr c a trư ng văn b n có tên là Email b thay i: <INPUT TYPE=TEXT NAME="Email" onChange="CheckEmail()"> Sau ây là b ng tóm t t các thu c tính s ki n có s n c a m t s i tư ng (Xem chi ti t hơn m c 2. document. it only returns undefined!</p> <script type="text/javascript"> var fruits = ["Banana". L p trình x lý s ki n JavaScript là ngôn ng hư ng s ki n. onSelect onBlur.unshift("Lem on". onFocus.write(fruits.Orange. i tư ng Selection list Text Textarea Button Checkbox Radio button Chương trình x lý s ki n có s n onBlur.Mango Note: The unshift() method does not work properly in Internet Explorer.Orange. Chương trình x lý s ki n (Event handler): M t o n mã hay m t hàm ư c th c hi n ph n ng trư c m t s ki n g i là chương trình x lý s ki n. "Mango"]. onFocus onBlur. document.Mango 3. </script> a.write(fruits. </script> <p><b>Note:</b> The unshift() method does not work properly in Internet Explorer. "Apple". "Orange". onFocus.12).Apple. onSelect onClick onClick onClick 76 .12. nghĩa là s ph n ng trư c các s ki n xác nh trư c như kích chu t hay t i m t văn b n.

onUnload. onBlur. i tư ng cũng có th có các chương trình x lý s ki n.13. Trong sơ phân c p các i tư ng c a JavaScript. Các i tư ng có thu c tính (properties). onMouseOver. các i tư ng con th c s là các thu c tính c a các i tư ng cha. onClick ư c g i khi có i tư ng link ư c kích. onMouseOut onMouseOver. onFocus onBlur. phương th c (methods). onFocus onSubmit. Ví d i tư ng document có thu c tính title ph n ánh n i dung c a th <TITLE> c a document. Các i tư ng trong JavaScript Như ã nói JavaScript là ngôn ng l p trình d a trên i tư ng.write ư c s d ng trong nhi u ví d ưa văn b n k t qu ra document. onError. onAbort 3. Hình dư i ây ch ra sơ phân c p các i tư ng trong JavaScript. onMouseOver ư c g i khi con tr chu t di chuy n qua link. Bên c nh ó phương th c document. Nh ng i tư ng này t n t i m t cách có c p b c và ph n ánh chính c u trúc c a file HTML ó.Hypertext link Clickable Imagemap area Reset button Submit button Document Window Framesets Form Image onClick. onReset onLoad. onError onLoad. Ví d i tư ng link có hai chương trình x lý s ki n là onClick và onMouseOver. nhưng không hư ng i tư ng b i vì nó không h tr các l p cũng như tính th a k . onMouseOut onClick onClick onLoad. và các chương trình x lý s ki n (event handlers) g n v i chúng. JavaScript s t o ra m t s cùng v i nh ng giá tr các thu c tính c a chúng d a trên file HTML c a document ó và m t vài thông tin c n thi t khác. i tư ng Khi t i m t document xu ng trình duy t. Sơ minh ho s phân c p c a các i tư ng 77 . onUnload.

window: là i tư ng vào toàn b c a s . m c cao nh t. location: có các thu c tính d a trên a ch URL hi n th i history: Ch a các thu c tính v các URL mà client yêu c u trư c ó. dùng cho MIME type ư c h tr b i client và plug-in ư c cài t trên client. màu n n. có các thu c tính th c hi n áp d ng - document: ch a các thu c tính d a trên n i dung c a document như tên.Window Textarea Text Frame Layer FileUpload Link Password document Image Hidden Area Location Submit Anchor Reset Applet History Plugin Radio Checkbox Form Button Select Option T t c các trang - u có các i tư ng sau ây: navigator: có các thu c tính tên và phiên b n c a Navigator ang ư c s d ng. 78 . các k t n i và các forms.

write("<br /><br />").agent.write("Cookies Enabled: " + navigator.write("Browser CodeName: " + navigator. document. document. Các u là thu c tính c a i tư ng window. nh tên trình duy t.write("User-agent header: " + navigator. document. 79 . userAgent platform nh n n t ng phát tri n c a trình duy t i tư ng navigator Ví d sau s hi n th giá tr t t c các thu c tính c a <script type="text/javascript"> document. Các thu c tính appCodeName AppName AppVersion Xác Xác nh tên mã n i t i c a trình duy t. document.13. Các thu c tính defaultStatus . i tư ng Xác nh thông tin v phiên b n c a navigator. i tư ng Window v trí i tư ng window là i tư ng m c cao nh t. document.1.write("<br /><br />"). document. document.write("<br /><br />").write("Browser Version: " + navigator.cookieEnabled).appVersion). i tư ng document. Xác Xác nh header c a user .M ng xác nh hi n th lên trên thanh tr ng thái c a nh t t c các frame trong c a s .Tên c a c a s hi n th i. i tư ng Navigator i tư ng này ư c s d ng t ư c các thông tin v trình duy t như s phiên b n.3. frame.write("<br /><br />"). </script> 3. Name .2.appName). i tư ng này không có phương th c hay chương trình x lý s ki n. document.platform).Thông báo ng m c as Frames .write("Platform: " + navigator. document. document.13.write("<br /><br />").appCodeName).userAgent).write("Browser Name: " + navigator. Length .S lư ng các frame trong c a s cha m .

như nút th nh t m m t c a s r ng. Ví d : S d ng tên c a s khi g i t i nó như là ích c a m t form submit ho c trong m t Hipertext link (thu c tính TARGET c a th FORM và A). alert ("message"): Hi n th h p h i tho i v i chu i "message" và nút OK. Window . "windowName".html xu ng c a s m i ó r i m t nút khác dùng óng c a s th hai l i.'resizable=no.- Parent - i tư ng c a s cha m Self . Status .html" TARGET="window2"> Load a file into window2 </A></P> <INPUT TYPE="button" VALUE="Close Second Window" onClick="msgWindow. Tr l i giá tr True cho OK và False cho Cancel.msec): ánh giá bi u th c expresion sau th i gian msec.height=200 ')"> <P><A HREF="doc2. [windowVar = ][window].'window2'. Trong ví d t o ra m t t i c a s th hai. [ t.html: <HTML> <HEAD> <TITLE>Frame Example </TITLE> </HEAD> <BODY> <FORM> <INPUT TYPE="button" VALUE="Open Second Window" onClick="msgWindow=window. - Các phương th c - prompt ("message" [.open(''.close()"> 80 .C a s trên cùng.C a s hi n th i. open("URL".ư c s d ng cho thông báo t m th i hi n th lên trên thanh th ng thái c a s . nút OK và nút Cancel. "windowFeatures" ] ) : M c a s m i.close: óng c a s windowReference. clearTimeout(timeoutID):Xóa timeout do SetTimeout SetTimeout: tr l i timeoutID windowReference. ơc s d ng l y hay t l i thông báo tr ng thái và ghi è lên defaultStatus. nh n d li u TimeoutID = setTimeout(expression. Top .width=200. ví d này lưa vào file window. confirm("message"): Hi n th h p h i tho i v i chu i "message". sau ó m t liên k t s t i file doc2."defaultInput"]): M m t h p h i tho i vào trư ng text.C a s hi n th i.

Ph n ư ng d n c a URL (ví d /chap1/page2.html).Giao th c ư c s d ng (cùng v i d u hai ch m) (ví d http:).com ). TimeoutID = setTimeout (expression.Câu truy v n tìm ki m có th i tư ng Frame cu i URL cho các script CGI. Host . Hostname . clearTimeout (timeoutID) . i tư ng Location Các thu c tính c a i tư ng location cho bi t các thông tin v URL c a document hi n th i. self .Xoá timeout do setTimeout l p.frame hi n th i. Các frame có th cu n m t cách c l p v i nhau và m i frame có URL riêng.msec) h t th i gian msec. Name .M ng t t c các frame trong c a s .frame hi n th i. Parent . Dư i ây là các thu c tính c a i tư ng này và các giá tr c th ng v i 1 Url là http:// www.com ).abc.abc. Search . hash .html#topic3 Các thu c tính 3. Chú ý r ng ây thư ng là c ng ng m nh và ít khi ư c ch ra. href .3.Tên c a host và domain (ví d www. frame không có các chương trình x lý s ki n.S lư ng các frame con trong m t frame. ánh giá expression sau khi Các phương th c - S d ng Frame 81 .C ng truy n thông ư c s d ng cho máy tính host.Ph n hostname:port c a URL (ví d www.Toàn b URL cho document hi n t i.Thu c tính NAME c a th <FRAME> Length .13. M t c a s có th có m t vài frame. Các thu c tính frames .com/ chap1/page2.13. thư ng là c ng ng m nh.4. SetTimeout tr l i timeoutID. Port .</FORM> </BODY> </HTML> 3.Tên anchor c a v trí hi n th i (ví d topic3). Protocol .C a s hay frame ch a nhóm frame hi n th i. Window . Pathname .abc.

html) Ta có th g i t i nh ng frame trư c ó b ng cách s d ng thu c tính frames như sau: listFrame chính là top.frames[0] contentFrame chính là top.frames[1] navigatorFrame chính là top.html) contentFrame (titles. 82 .HTM NAME="navigateFrame"> </FRAMESET > </HEAD> <BODY> </BODY> </HTML> Sơ sau hi n th c u trúc c a các frame: C 3 frame u trên cùng m t c a s cha. m c dù 2 trong s các frame ó n m trong m t frameset khác.t o m t frame.70%"> <FRAME SRC=CATEGORY. M c ích c a th này là nghĩa m t t p các frame trong m t trang.10%"> <FRAMESET COLS="30%. ta s d ng th FRAMESET.frames[2] C p nh t m t frame (update) Ta có th c p nh t n i dung c a m t frame b ng cách s d ng thu c tính location t a ch URL và ph i nh ch rõ v trí c a frame trong c u trúc.HTM NAME="contentFrame"> </FRAMESET > <FRAME SRC=NAVIGATOR. Ví d : nh <HTML> <HEAD> <TITLE>Frame Example </TITLE> <FRAMESET ROWS="90%.html) navigatorFrame (navigator.HTM NAME="ListFrame"> <FRAME SRC=TITLES. Top listFrame (category.

thu th p d li u vào c a document. i tư ng Anchors anchor là m t o n văn b n trong document có th dùng làm ích cho m t siêu liên k t.close: ra màn hình.. document.expression2].13. cookie: S d ng xác nh cookie. M t s các thu c tính g n v i th <BODY>.expressionN]): Vi t bi u th c HTML lên văn b n trông m t c a s xác nh. anchor: M ng t t c các anchor trong document. Các i tư ng anchor.expression2] . óng dòng d li u vào và ưa toàn b d li u trong b m Các phương th c 3. fgColor: Gi ng thu c tính TEXT. document. history. Nó ư c xác nh b ng c p th <A> và </A>.write(expression1 [. linkColor: Gi ng thu c tính LINK. i tư ng Document i tư ng này ch a các thông tin v document hi n th i và cung c p các phương ưa thông tin ra màn hình. location: URL y c a văn b n. document. lastModified: Ngày cu i cùng văn b n ư c s a. Các thu c tính alinkColor: Gi ng như thu c tính ALINK.clear: Xoá document hi n th i. forms: M ng t t c các form trong document.5.3.expressionN] ) : Gi ng phương th c trên nhưng khi h t m i bi u th c l i xu ng dòng. S ki n onLoad và onUnLoad là cho i tư ng window.writeln (expression1 [. bgColor: Gi ng thu c tính BGCOLOR. links là thu c tính c a i tư ng document. vlinkColor: Gi ng thu c tính VLINK.open (["mineType"]): M m t stream các phương th c write và writeln.. referrer: URL c a văn b n g i nó.6. Không có các chương trình x lý s ki n cho các frame.[..13. [. i tư ng anchor không có 83 . i tư ng document ư c t o ra b ng c p th th c <BODY> và </BODY>. title: N i dung c a th <TITLE>.. links: M ng t t c các link trong document. forms. document.

anchors. M i m t form có th Các thu c tính Action: thu c tính ACTION c a th FORM.7. nh s lư ng các anchor 3.back() ây.forms[index] Các phương th c 3. i tư ng History i tư ng này ư c s d ng lưu gi các thông tin v các URL trư c ư c ngư i s d ng s d ng. M i anchor ư c tham chi u b ng cách: document. chúng có th ư c tham chi u qua m ng forms. Method: Thu c tính METHOD. select.Xu t d li u c a m t form tên formName t i trang x lý. Các thu c tính length . radio. Elements: M ng ch a t t c các thành ph n trong m t form (như checkbox. textarea N u document ch a m t vài form.S lư ng các URL trong history.anchors [index] M ng anchor có m t thu c tính duy nh t là length xác trong document. Danh sách các URL ư c lưu tr theo th t th i gian. Length: S lư ng các thành ph n trong m t form. formName. M ng anchor tham chi u n m i anchor có tên trong document. checkbox. phương th c cũng như chương trình x lý s ki n. Phương th c này mô ph ng m t click vào nút submit trên form. i tư ng này không có chương trình x lý s ki n.thu c tính. hidden.length.submit () .forms. submit. text. Target: Xâu ch a tên c a c a s ích khi submit form mã hoá n i dung c a form ư c tham chi u b ng cú pháp: document.length. password. tham chi u t i URL m i ư c thăm trư c Các phương th c - 84 . Có m t vài ph n t (elements) là thu c tính c a i tư ng forms:button. nó có th ư c xác nh như sau: document.13. danh sách l a ch n Encoding: Xâu ch a ki u MIME ư c s d ng g i cho server.13. reset. i tư ng Form Ph n l n các thu c tính c a i tư ng form ph n ánh các thu c tính c a th <FORM>. S lư ng các form có th ư c xác nh b i cú pháp:document.8. trư ng text. ư c s d ng i tư ng.

Chú ý r ng ây thư ng là c ng ng m nh và ít khi ư c ch ra. i tư ng link là m t o n văn b n hay m t nh ư c xem là m t siêu liên k t. port: C ng truy n thông ư c s d ng cho máy tính host.com).com/chap1/page2. i i Vi c tham chi u t i number trong các phương th c có th là s hay các bi u th c ư c náh giá là s h p l . các hàm toán h c. i tư ng Link 3.com).abc. history.forward() . pathname: Ph n ư ng d n c a URL (ví d /chap1/page2. search: Câu truy v n tìm ki m có th cu i URL cho các script CGI. i Các thu c tính c a i tư ng link ch y u x lý v URL c a các siêu liên k t.13.go (delta | "location") . M ng link ch a danh sách t t c các liên k t trong document.abc.abc.ư c s d ng chuy n lên hay chuy n xu ng delta b c hay di chu n n URL xác nh b i location trong danh sách. target: Gi ng thu c tính TARGET c a <LINK>.links [index] Dư i ây là các thu c tính c a i tư ng link ng v i URL là : http://www.9.links. thư ng là c ng ng m nh.13. hash: Tên anchor c a v trí hi n th i (ví d topic3).html). href: Toàn b URL cho document hi n t i. Các thu c tính c a tư ng này ch a nhi u h ng s toán h c. i tư ng Math i tư ng Math là i tư ng n i t i trong JavaScript. URL g n nh t có ch a location là chu i con s ư c tham chi u. 85 .10. tư ng link cũng không có phương th c nào. n u s d ng location.html#topic3 Các thu c tính 3. Hostname: Tên c a host và domain (ví d ww. tư ng Math không có chương trình x lý s ki n. protocol: Giao th c ư c s d ng (cùng v i d u hai ch m) (ví d http:).length() nh s Có th tham chi u t i m t liên k t q a tài li u b ng cú pháp : document. Nó s không gây hi u ng gì n u ã n cu i c a danh sách. lư ng giác ph bi n. Có th xác lư ng các link qua cú pháp : document.- history. host: Ph n hostname:port c a URL (ví d www.ư c s d ng tham chi u t i URL k ti p trong danh sách. N u delta ư c s d ng thì vi c d ch chuy n lên phía trên khi delta dương và xu ng phía dư i khi delta âm.

exp (number): Tr l i giá tr e^ number. Math.693. 86 .707.floor (number): Tr l i s nguyên l n nh t nh hơn ho c b ng number. Các phương th c Math. Nó cung c p nhi u phương th c có ích x lý v th i gian và ngày tháng.tan (number): Tr l i tag c a number.11.13.14159. kho ng 0. i tư ng Date i tư ng Date là i tư ng có s n trong JavaScript. LOG2E: logarit cơ s 2 c a e. kho ng 1.5. Math. Math. Math.num2): Tr l i giá tr nh nh t gi a num1 và num2. Math.min (num1. Math.exponent):Tr l i giá tr base lu th a exponent. Giá tr c a number ph i nămg gi a -1 và 1. kho ng 2. Math. LN2: logarit t nhiên c a 2. Math.asin (number): Tr l i giá tr arc sine (theo radian) c a number. kho ng 0.atan (number): Tr l i giá tr arc tan (theo radian) c a number.acos (number): Tr l i giá tr arc cosine (theo radian) c a number.718.round (number): Tr l i giá tr c a number làm tròn t i s nguyên g n nh t.414. Math.Các thu c tính E: H ng s Euler.pow(base.sqrt (number): Tr l i căn b c 2 c a number. PI: Giá tr c a π. Math.max (num1. kho ng 3. Math. Math.442. Math.sin (number): Tr l i sin c a number.ceil (number): Tr l i s nguyên nh nh t l n hơn ho c b ng number. Giá tr c a number ph i nămg gi a -1 và 1.random (r): Tr l i m t s ng u nhiên gi a 0 và 1.abs (number): Tr l i giá tr tuy t i c a number. Math. kho ng 2.num2): Tr l i giá tr l n nh t gi a num1 và num2 Math. v i e là h ng s Euler. SQRT2: Căn b c 2 c a 2. Phương th c này ch th c hi n ư c trên n n t ng UNIX.cos (number): Tr l i giá tr cosine c a number.302.log (number): Tr l i logarit t nhiên c a number. SQRT1_2: Căn b c 2 c a 0.Math. kho ng 1. 3. i tư ng Date không có thu c tính và chương trình x lý s ki n. . LN10: logarit t nhiên c a 10.

. dateVar. dateVar. Ví d : dateVar = new Date ('August 16. dateVar.getTimeZoneOffset(): Tr l i d ch chuy nb ng phút c a gi phương hi n t i so v i gi qu c t GMT.setSeconds(seconds): a nh t.setDay(day): t ngày trong tháng là day cho dateVar. t tháng là months cho dateVar. Date.getMinutes(): Tr l i phút (0-59) cho dateVar.hours] [. dateVar. Các phương th c 87 .toLocaleString():Tr l i chu i bi u di n dateVar theo khu v c th i gian hi n th i.setHours(hours): dateVar.getSeconds(): Tr l i giây (0-59) cho dateVar.toGMTString(): Tr l i chu i bi u di n dateVar dư i d ng GMT.getDay(): Tr l i ngày trong tu n (0=ch dateVar. t gi là hours cho dateVar.UTC (year. day [.. dateVar.setYear(years): t năm là years cho dateVar. Date.6=th b y) cho dateVar.getYear():Tr l i năm cho dateVar.12. i tư ng String i tư ng String là i tư ng ư c xây d ng n i t i trong JavaScript cung c p nhi u phương th c thao tác trên chu i. trong ó value bi u di n s lư ng mili giây t 00:00:00 ngày 01/01/10970. t phút là minutes cho dateVar.setMinutes(minutes): dateVar.Ph n l n các phương th c date th c gi i thi u trong ph n này s d ng u có m t i tư ng Date i cùng. Các phương i tư ng Date dateVar.getHours(): Tr l i gi (0-23) cho dateVar. dateVar.setTime(value): t th i gian là value. t giây là seconds cho dateVar. dateVar.13. dateVar. dateVar. dateVar. dateVar.parse (dateStr): Phân tích chu i dateStr và tr l i s lư ng các mili giây tính t 00:00:00 ngày 01/01/1970. i tư ng này có thu c tính duy nh t là dài (length) và không có chương trình x lý s ki n.setMonths(months): dateVar.minutes] [.seconds]): Tr l i s lư ng mili giây t 00:00:00 01/01/1970 GMT. dateVar.getTime(): Tr l i s lư ng các mili giây t 00:00:00 ngày 1/1/1970. 1996 20:45:04').getDate(): Tr l i ngày trong tháng (1-31) cho dateVar. month. dateVar. Các phương th c 3..

Tr l i v trí trong chu i str v trí xu t hi n u tiên c a chu i srchStr. ng cho chhu i - - 3.toUpperCase(): i chu i str thành ch thư ng. Tham s index có th ư c s d ng xác nh v trí b t u tìm ki m trong chu i. str. Các ký t ư c m t trái sang ph i b t u t 0.lastIndex0f(srchStr [. str. str. str. i chu i str thành ch hoa. Khi ó.fontcolor(): K t qu gi ng như th <FONTCOLOR = color>. str.big(): K t qu gi ng như th <BIG> trên chu i str. str.fixed(): K t qu gi ng như th <TT> trên chu i str. gi ng th <SUP>. str. str. ng). Tham str. str.strike(): K t qu gi ng như th <STRIKE> trên chu i str. str.toLowerCase(): str.fontsize(size): K t qu gi ng như th <FONTSIZE = size>. str.- str.anchor (name): ư c s d ng t o ra th <A> (m t cách s name là thu c tính NAME c a th <A>.blink(): K t qu gi ng như th <BLINK> trên chu i str. str.14. Chu i str ư c tìm t ph i sang trái.b): Tr l i chu i con c a str là các ký t t v trí th a t i v trí th b. Các ph n t c a form làm vi c v i các ph n t 88 . str.bold(): K t qu gi ng như th <BOLD> trên chu i str. Chu i str ư c tìm t trái sang ph i.index]) . Tham s index có th ư c s d ng xác nh v trí b t u tìm ki m trong chu i. str.small(): K t qu gi ng như th <SMALL> trên chu i str.italics(): K t qu gi ng như th <I> trên chu i str.sup(): T o ra superscript cho chu i str. n i dung (ho c giá tr ) c a các ph n t s ư c chuy n n m t chương trình trên server qua m t giao di n ư c g i là Common Gateway Interface(Giao ti p qua m t c ng chung) g i t t là CGI S d ng JavaScript ta có th vi t nh ng o n scripts c a form và các giá tr c a chúng.sub(): T o ra m t subscript cho chu i str. Các ph n t c a i tư ng Form Form ư c t o b i các ph n t cho phép ngư i s d ng ưa thông tin vào.substring(a.index]): Tr l i v trí trong chu i str v trí xu t hi n cu i cùng c a chu i srchStr.link(href): ư c s d ng t o ra m t k t n i HTML str.charAt(a): Tr l i ký t th a trong chu i str. str. gi ng th <SUB>. Tham s href là URL ích c a liên k t. str.index0f(srchStr [.

K t h p v i nó là cách th c duy nh t click.Ph n t Mô t button checkbox FileUpload hidden password radio reset M t nút b m b t kỳ (<INPUT TYPE="button">) M t checkbox (<INPUT TYPE="checkbox">) Là m t ph n t t i file lên cho phép ngư i s d ng g i lên m t file (<INPUT TYPE="file">) M t trư ng n (<INPUT TYPE="hidden">) M t trư ng text nh p m t kh u mà t t c các ký t nh p vào hi n th là d u (*)(<INPUT TYPE="password">) M t nút b m (<INPUT TYPE="radio">) M t nút reset(<INPUT TYPE="reset">) M t danh sách l a ch n (<SELECT> select <OPTION>option1</OPTION> <OPTION>option2</OPTION> </SELECT>) submit text M t nút submit (<INPUT TYPE="submit">) M t trư ng text (<INPUT TYPE="text">) M t trư ng text cho phép nh p vàp nhi u dòng textArea <TEXTAREA>default text</TEXTAREA>) M i ph n t có th 3.14. Ph n t Button ư c t tên JavaScript truy nh p n chúng qua tên Trong m t form HTML chu n.1. ch có hai nút b m có s n là submit và reset b i v d li u trong form ph i ư c g i t i m t vài a ch URL (thư ng là CGI-BIN script) x lý và lưu tr . M t ph n t button ư c ch nh rõ khi s d ng th INPUT: <INPUT TYPE="button" NAME="name" VALUE= "buttonName"> Ch có m t th s ki n duy nh t i v i button là onClick. Ph n t buttton có kh năng m r ng cho phép ngư i l p trình 89 .

blur().form). thay vì s d ng onChange.value = eval(form.14. ta có th ch nh s a script bi u th c khi button ư c b m.JavaScript có th vi t ư c m t o n mã l nh JavaScript nút b m trong m t script.2."> <BR> <INPUT TYPE="button" VALUE="Calculate" onClick="calculate(this."> </FORM> </BODY> </HTML> 3. Các thu c tính và cách th c c a ph n t checkbox.HIDE FROM OTHER BROWSERS function calculate(form) { form.value). <HTML> <HEAD> <TITLE>button Example</TITLE> <SCRIPT LANGUAGE="JavaScript"> <!-. Ph n t Checkbox nh giá Các ph n t checkbox có kh năng b t t t dùng ch n ho c không ch n m t thông tin. th c thi vi c thêm vào m t Trong ví d sau. Ví d : nh giá m t form s d ng ph n t button. Các checkbox có nhi u thu c tính và cách th c hơn button.results. B ng dư i ây là danh sách các thu c tính và các cách th c c a ph n t checkbox. } // STOP HIDING FROM OTHER BROWSERS --> </SCRIPT> </HEAD> <BODY> <FORM METHOD=POST> Enter a JavaScript mathematical expression: <INPUT TYPE="text" NAME="entry" VALUE=""> <BR> The result of this expression is: <INPUT TYPE=text NAME="results" onFocus="this.entry. Phương th c và thu c tính Mô t 90 .

callingField) { if (callingField == "result") { // if(1) if (form.value / 2.entry.result.entry.value*form.result.square. } //end if(2) } else{ if (form.entry.checked) { // if(2) form.square.HIDE FROM OTHER BROWSERS function calculate(form.result.checked defaultChecked name Cho bi t tr ng thái hi n th i c a checkbox (thu c tính) Cho bi t tr ng thái m c Cho bi t tên c a ph n t (thu c tính) nh c a ph n t (thu c tính) ư c ch nh trong th INPUT value Cho bi t giá tr hi n th i c a ph n t trong th INPUT (thu c tính) Mô t m t click vào checkbox (Cách th c) ư c ch nh click() Ph n t checkbox ch có m t thu c tính s ki n là onClick Ví d : T o h p checkbox phương: nh p vào m t s r i l a ch n tính nhân ôi và bình <HTML> <HEAD> <TITLE>checkbox Example</TITLE> <SCRIPT> <!-.checked) { // if(3) form.entry. } else { form.value * 2.value. } //enfzd if(3) }//end if(1) }//end function // STOP HIDING FROM OTHER BROWSERS --> </SCRIPT> 91 .sqrt(form.value = form.value=form.value).value = form.result.value = Math. } else { form.entry.

</HEAD> <BODY> <FORM METHOD=POST> Value: <INPUT TYPE="text" NAME="entry" VALUE=0 onChange="calculate(this.."> </FORM> </BODY> </HTML> Trong script này. n u không. i hàm calculate() như sau: 92 .value*form.form.entry.entry.result."> Square <BR> Result: <INPUT TYPE="text" NAME="result" VALUE=0 onChange="calculate(this.sqrt(form. m t th c thi ư c m c nh s nhân ôi giá tr c a nó.value = Math.this."> <BR> Action (default double): <INPUT TYPE=checkbox NAME=square onClick="calculate(this.else Ta có th thêm m t checkbox tên là square vào form. } else { form.name).square. ta có th thay function calculate(form.value=form. N u h p này ư c check.value.callingField) { if (callingField == "result") { // if (1) if (form.value / 2. chương trình s l y giá tr c a nó.result.checked) { // if (3) form.name). ta ã th y cách s d ng th s ki n onClick cũng như thu c tính checked là m t giá tr ki u Boolean có th dùng làm i u ki n trong câu l nh if.value).entry. form s ư c tính toán l i.this. } //end if(2) } else { if (form.form.name).checked) { // if (2) form.value = form.. this."> ) Khi ó n u ngư i dùng thay i m t câu l nh khác.form. t o ra s m r ng cho checkbox.square.entry.result.form.this.name). Th s ki n onClick trong checkbox ư c nh nghĩa: (<INPUT TYPE=checkbox NAME=square onClick= "calculate( this.

Ph n t này cũng ko có phương th c hay thu c tính s ki n 3. c hai i tư ng khác. Ph n t Hidden Ph n t hidden là ph n t duy nh t trong s t t c các ph n t c a form không ư c hi n th trên Web browser. ó cũng là nh ng giá tr xâu gi ng các i tư ng khác.} else { form.14.5. Ph n t Radio Ph n t radio g n gi ng s b t t t checkbox khi có hai nút radio k t h p thành m t nhóm. Trư ng hidden có th s d ng lưu các giá tr c n thi t g i t i server song song v i s xu t ra t form (form submission) nhưng nó không ư c hi n th trên trang. Ph n t File Upload Ph n t này cung c p cho form m t cách ngư i s d ng có th ch rõ m t file ưa vào form x lý. Password có nhi u phương th c hơn (focus(). Không có phương th c cho ph n t này. u là giá tr xâu như các 3..value * 2.14. Ph n t file Upload ư c ch nh rõ trong JavaScript b ng i tư ng FileUpload.14.. Ph n này s ư c nói k hơn trong i tư ng text. onBlur. Ph n t Password Ph n t Password là i tư ng duy nh t trong các i tư ng c a form mà khi gõ b t kỳ ký t nào vào cũng u hi n th d u sao(*). Ví d dòng l nh sau t o ra m t nhóm radio có ba nút tên là test: 93 . name và value. Không gi ng v i hai ph n t trên. M i ngư i có th s d ng trong JavaScript lưu các giá tr trong su t m t script và tính toán không c n form. i tư ng hidden ch có hai thu c tính là name và value. ch có m t nút ư c ch n trong b t kỳ m t th i i m nào.value = form. i tư ng Password có 3 thu c tính gi ng ph n t text là: defaultValue. } // end if (3) } // end if (1) } 3. blur(). Nó cho phép ưa vào nh ng thông tin bí m t như ăng ký m t kh u.14. and onSelect.result. 3.6.3.entry. and select() ) và tương ng v i các thu c tính s ki n: onFocus. i tư ng ch có hai thu c tính là name và value. Khi nhi u radio ư c k t h p thành m t nhóm.4.

nên chúng ư c t trong m t m ng các nút radio và ư c ánh s t 0.<INPUT TYPE="radio" NAME="test" VALUE="1" chECKED>1<BR> <INPUT TYPE="radio" NAME="test" VALUE="2">2<BR> <INPUT TYPE="radio" NAME="test" VALUE="3">3<BR> Nhóm các nút radio l i b ng cách INPUT. n u nhóm ó n m trong m t form có tên là "testform". t cho chúng có cùng m t tên trong các th Có m t vài thu c tính ki m tra tr ng thái hi n th i c a m t nhóm nút radio.HIDE FROM OTHER BROWSERS function calculate(form. Thu c tính và phương th c checked defaultChecked index length name value Mô t Mô t tr ng thái hi n th i c a ph n t radio (thu c tính) Mô t tr ng thái m c nh c a ph n t (thu c tính) Mô t th t c a nút radio ư c ch n hi n th i trong m t nhóm Mô t t ng s nút radio trong m t nhóm Mô t tên c a ph n t (thu c tính) ư c ch nh trong th INPUT ư c nh ra trong th Mô t giá tr hi n th i c a ph n t INPUT (thu c tính) click() Mô ph ng m t click trên nút radio (cách th c) Cũng như checkbox. radio ch có m t thu c tính s ki n là onClick. B ng sau hi n th các thu c tính và cách th c c a i tư ng radio. Các thu c tính và cách th c c a i tư ng radio.callingField) { 94 . b n có th g i t i nút radio th hai b ng tên "testform. Do m t nhóm radio g m nhi u ph n t radio. Không có b t kỳ m t i tư ng form nào có thu c tính index và length.test[1]. Trong ví d nhóm radio có tên test trên.checked" minh ho rõ cách dùng Ví d : i tư ng radio.test[1]" và có th ki m tra giá tr c a nó b ng "testform. ta xem ví d sau: <HTML> <HEAD> <TITLE>radio button Example</TITLE> <SCRIPT> <!-.

"> <BR> Action:<BR> <INPUT TYPE="radio" NAME="action" VALUE="twice" onClick="calculate(this. do ó hai nút này có th truy nh p b ng action[0] và action[1].entry.result.name).value=form.value).value = Math. ây ta s d ng hai nút radio v i hai giá tr khác nhau: double và square Như ta ã bi t có th truy nh p n các nút radio qua m t m ng. "> Square <BR>Result: <INPUT TYPE=text NAME="result" VALUE=0 onChange="calculate(this.value*form.this.action[1]. } } } // STOP HIDING FROM OTHER BROWSERS --> </SCRIPT> </HEAD> <BODY> <FORM METHOD=POST> Value: <INPUT TYPE="text" NAME="entry" VALUE=0 onChange="calculate(this.checked) { form.this. B ng cách này. b n ch c n thay i tham chi u n hàm calculate() t form.value = form."> </FORM> </BODY> </HTML> Trong ví d này.form. Thay cho m t checkbox trong ví d trư c. } else { form.entry.this.action[1].checked) { form.name).form.this.value / 2.value.result.entry."> Double<BR> <INPUT TYPE="radio" NAME="action" VALUE="square" onClick="calculate(this.result.action[1].entry.checked.checked thành form.result.value = form. } } else { if (form.square.if (callingField == "result") { if (form.form.name). s thay i t checkbox trên là r t khó nh n bi t. 95 .name).entry.sqrt(form.form.value * 2. } else { form.

H u h t nh ng ngư i l p trình không s d ng thu c tính s ki n onClick c a nút reset ki m tra giá tr c a nút này. tư ng select có 3 thu c tính s ki n. m t vài thành ph n tương t các button và radio.3. 96 . optionValue. Tuy nhiên.options[1].8. C vi c l a ch n các option và t ng ph n t option riêng bi t u có nh ng thu c tính.options[index] = newOptionName.14. và thu c tính value m i giá tr ch ra trong th OPTION. SELECTED: cho bi t tr ng thái hi n th i c a option INDEX: ch a giá tr s th t c a option h ên th i trong m ng option. M i option trong danh sách l a ch n u có m t vài thu c tính: nh là l a ch n trong DEFAULTSELECTED: cho bi t option có ư c m c th OPTION hay không. có ch a s th t c a option ư c l a ch n hi n th i. m t thu c tính s ki n onClick. i i tư ng select không có các phương th c ư c nh nghĩa s n. danh sách các l a ch n ư c ch a trong m t m ng ư c ánh s t 0. defaultSelected. selectListName. i tư ng reset có hai thu c tính là name và value.14.text = "two". onChange. Có th thêm các l a ch n m i vào danh sách b ng cách s d ng d ng Option() theo cú pháp: i tư ng xây newOptionName = new Option(optionText. B sung thêm vào m ng option. thu c tính c n thay i và giá tr mà nó s nh n như ví d sau : example. i tư ng này t o ra V i các thành ph n l a ch n. và m t phương th c click(). m ng là m t thu c tính c a i tư ng select g i là options. TEXT: có ch a giá tr c a dòng text hi n th trên menu cho m i option. S a các danh sách l a ch n Ta có th thay i ư c các thu c tính c a m t l a ch n b ng cách ch ra th t c a l a ch n. Ph n t Reset Cũng gi ng i tư ng button. Trong trư ng h p này. Ph n t Select Danh sách l a ch n trong JavaScript là i tư ng select. onFocus. i tư ng reset thư ng dùng xoá form. ó là onBlur. ph n t select có thu c tính selectedIndex.7. selected). 3.

cho 3. onFocus.9.Vi c t o i tư ng option() này v i dòng text ư c ch trư c. blur() và select() và có 4 thu c tính s ki n onBlur. i tư ng submit có s n thu c tính name và value. phương th c click() và th s ki n onClick. Nút này ưa thông tin hi n t i t các trư ng c a form t i a ch URL ư c ch ra trong thu c tính ACTION c a th form s d ng cách th c METHOD ch ra trong th FORM.14.options[index] = null. Ph n t này có ba phương th c: focus(). Mô t Ch ra giá tr m c nh c a ph n t trong th INPUT (thu c tính) ư c ch ra ã ư c kích ra ngoài ph n t Tên c a i tư ng ư c ch ra trong th INPUT (thu c tính) Giá tr hi n th i c a ph n t (thu c tính) Mô t vi c con tr t i trư ng text (cách th c) Mô t vi c con tr r i trư ng text (cách th c) Mô t vi c l a ch n dòng text trong trư ng text (cách th c) 97 . Ph n t submit Nút Submit là m t trư ng h p c bi t c a button. defaultSelected và selected như trên ã nh ra nh ng giá tr ki u Boolean. Gi ng như i tư ng button và reset. i tư ng text có ba thu c tính:defautValue. Các l a ch n có th b xoá trong danh sách l a ch n b ng cách g n giá tr null i tư ng mu n xoá selectListName. name và value. nhưng các ký t c a nó hi n ra bình thư ng. ph n t text cho phép nh p vào m t dòng ơn.14. 3. onChange. Chú ý các s ki n này ch th c hi n khi con tr text. i tư ng này ư c liên k t vào danh sách l a ch n ư c th c hi n b ng index.10. onSelect. Ph n t Text Ph n t này là 1 trong nh ng ph n t hay ư c s d ng nh t trong các form HTML. Các thu c tính và cách th c c a Cách th c và thu c tính defaultValue name value focus() blur() select() i tư ng text. Tương t như ph n t Password. cũng như nút Reset.

first.this. các th s ki n onBlur. Ph n t Textarea Cũng như ph n t text.form.value. M ng elements[] Các i tư ng c a form có th ư c g i t i b ng m ng elements[]. dòng text ư c tiên ư c l p l i trong trư ng text th hai. else form.name). Ví d . 3.14."> <INPUT TYPE=text NAME="second" onChange="echo(this.currentField) { if (currentField == "first") form. select(). ph n t Textarea có các thu c tính defaultValue."> </FORM> </BODY> </HTML> 3. onChange.value = form.value = form.value. Trong ví d sau ây. Ví d ta t o ra m t form sau: <FORM METHOD=POST NAME=testform> <INPUT TYPE="text" NAME="one"> <INPUT TYPE="text" NAME="two"> <INPUT TYPE="text" NAME="three"> 98 .second. các cách th c focus(). và m i dòng text ư c th hai l i ư c l p l i trong trư ng text th nh t. } // STOP HIDING FROM OTHER BROWSERS --> </SCRIPT> </HEAD> <BODY> <FORM> <INPUT TYPE=text NAME="first" onChange="echo(this.second. name.HIDE FROM OTHER BROWSERS function echo(form. Kh năng này c t ng c p nh t ho c thay i d li u. blur().this.first.M t chú ý quan tr ng là có th gán giá tr cho trư ng text b giá tr v i thu c tính value. T ng c p nh t các trư ng text . onForcus.14.11.form.12. ng cách liên k t các ưa vào trư ng u ưa vào trư ng text a nó có th áp d ng <HTML> <HEAD> <TITLE>text Example</TITLE> <SCRIPT LANGUAGE="JavaScript"> <!-. và value. onSelect.name).

gi s có m t i tư ng tên là myCar (trong trư ng h p này gi s i tư ng này ã t n t i).propertyName Ta có th nh nghĩa thu c tính cho i tư ng b ng cách gán cho nó m t giá tr .testform. ta có th nh nghĩa các thu c tính có tên make.make = “Ford“ myCar.three.elements[2].one. document. Có m t m ng lưu tr t p h p các giá tr tham chi u t i t ng bi n.forms["name"] ho c document. th c ra chúng ch khác nhau v cách làm vi c v i cùng m t c u trúc d li u. minh ho vi c mày ư c th c hi n như th nào.model = “Mustang“ myCar.15.testform.year = 69.name 3. document. document. ho c cũng có th g i document. model và year c a nó như sau: myCar. document.13.elements[1]. function showProps (obj. objName) { var result=”” for (i in obj) 99 . 3.forms[] thay vì g i b ng tên form. Mô hình 3. hàm sau ây s hi n th các thu c tính c a m t i tư ng thông qua tham s v ki u i tư ng ó và tên i tư ng. truy c p n 1 form có th V i khai báo <FORM METHOD=POST NAME="name"> Khi ó ta có th g i là document.14.</FORM> Ta có th g i t i ba thành ph n này như sau: document.elements[0]. Ví d . M ng forms[] M ng Form ch a t t c các Form trên m t tài li u.two.1. i tư ng (OBJECT MODEL) i tư ng và thu c tính M i i tư ng trong JavaScript có các thu c tính i kèm v i nó. Thu c tính và m ng trong JavaScript có quan h m t thi t v i nhau. Ki u m ng này ư c hi u như m t m ng có kh năng liên k t b i m i m t ph n t trong ó u có th liên k t n m t giá tr xâu nào ó. ta có th truy nh p n các thu c tính c a nó b ng cú pháp: objectName.testform.15. Ta cũng có th truy nh p t i các thu c tính c a i tư ng myCar trên b ng m ng như sau: myCar[make] = “Ford“ myCar[model] = “Mustang“ myCar[year] = 69. g i b ng document.

n u ch mu n t o ra m t i tư ng duy nh t c a m t ki u i tư ng.2. N u như ta không c n dùng n i tư ng ó nhi u l n thì không c n ph i gán nó cho m t bi n.15. b n có th t o ra m t hàm xây d ng trư c. i tư ng ư c nh nghĩa trư c. Cú pháp Initializers): t o ra m t i tư ng b ng cách kh i t o i tư ng (Object objectName={property1: value1.make = Ford myCar.year = 69. m i propertyI là m t xác minh (có th là m t tên. Có th l a ch n kh i t o b ng tên i tư ng ho c ch b ng các khai báo... Ví d sau t o ra m t i tư ng myHonda v i 3 thu c tính: myHonda={color:”red”.size:2.. .result=result+ objName + “.”myCar”) s hi n lên: myCar. 100 .”+ i+ “=” + obj[i] + “\n” return result } Khi g i hàm showProps (myCar.engine:{cylinder:4.2. propertyN: valueN} Trong ó objectName là tên c a i tư ng m i. cách này thư ng s d ng khi ta ch mu n t o ra m t cá th ơn l ch không ph i nhi u cá th c a i tư ng. Tuy nhiên.wheels:4. ta có th t o nó b ng cách s d ng kh i t o i tư ng. property2: value2. sau ó t o ra các i tư ng có ki u c a hàm ó b ng toán t new Kh i t o i tư ng Ta có th t o ra m t i tư ng b ng cách s d ng m t kh i t o i tư ng. T o m t i tư ng m i JavaScript có m t s t o ra nh ng i tư ng m i. 3. Ho c n u b n mu n t o ra nhi u cá th c a m t ki u i tư ng. ta cũng có th Trong JavaScript 1.2} } Chú ý r ng thu c tính engine cũng là m t i tư ng v i các thu c tính c a nó S d ng hàm t o (CONSTRUCTOR FUNCTION) Ta có th t o ra m t i tư ng m i v i hai bư c sau: nh nghĩa ki u c a i tư ng b ng cách vi t m t hàm t o. m t s ho c m t xâu ký t ) và m i valueI là m t bi u th c mà giá tr c a nó ư c gán cho propertyI.model = Mustang myCar.

year = year this.make = make this.1993) Câu l nh này s t o ra i tư ng mycar và liên k t các giá tr ư c ưa vào v i các thu c tính.33. Ví d gi s b n mu n t o m t ki u i tư ng ô tô v i tên là car. model. age.year = year } Chú ý vi c s d ng toán t this ph i thông qua các tham s c a hàm.model = model this.make = make this.owner ){ this. Ví d ta nh nghĩa thêm m t i tư ng khác là person như sau: function person(name.year là m t s nguyên 1993. sex){ this.39..C như v y ta có th t o ra nhi u i tư ng ki u car. các thu c tính và các cách th c c a ki u i tư ng ó. Khi ó giá tr c a mycar. year và color. Ví d .model là “Talon TSi”. th c hi n vi c này có th vi t m t hàm như sau: function car(make.”Talon TSi”.”M”) ken = new person(“Ken John”. model.model = model this. ta ph i t o ra m t hàm ch nh rõ tên.”M”) Bây gi b n nh nghĩa l i hàm xây d ng car như sau: function car(make. có các thu c tính make. ta có th t o m t gán giá tr cho các thu c tính c a i tư ng i tư ng m i ki u car như sau: mycar = new car(“Eagle”.name=name this. M t i tư ng cũng có th có nh ng thu c tính mà b n thân nó cũng là m t tư ng.owner = owner } Như v y b n có th t o i tư ng ki u car m i: i 101 .sex=sex } Và sau ó ta t o ra hai ngư i m i: rank = new person(“Rank McKinnon”. year ){ this. year.make là “Eagle”. giá tr c a mycar..age=age this. model..- T o ra m t cá th c a i tư ng ó b ng toán t new nh nghĩa m t ki u i tư ng. và mycar.

4.myForm 3.color=”red” 3. nó s không gây tác ng t i b t kỳ m t i tư ng ki u car nào khác.car1 = new car(“Eagle”. và n u nh nghĩa m t thu c tính b ng ch s thì ta cũng luôn luôn ph i g i t i nó b ng ch s .name Chú ý r ng ta cũng có th t o ra m t thu c tính m i cho nghĩa nó.”Talon TSi”. nh nghĩa thêm các thu c tính cho m t ki u i tư ng thêm thu c tính cho m t ki u i tư ng ã ư c nh nghĩa trư c ta s d ng thu c tính prototype. methodName là tên cách th c và 102 . thì s luôn luôn ph i g i nó b ng tên.”300ZX”. Tuy nhiên.prototype. Vì v y nh nghĩa m t phương th c cho m t i tư ng nghĩa là nh nghĩa m t hàm chu n g n v i i tư ng ó theo cú pháp sau: object. N u mu n thêm thu c tính cho t t c các i tư ng thì ph i nh nghĩa l i hàm xây d ng i tư ng.owner. Ví d sau th c hi n thêm thu c tính color cho t t c các ó g n m t giá tr màu cho thu c tính color c a i tư ng car1: car. ta ch c n ưa hai i tư ng ã ư c t o câu l nh trên vào dòng tham s c a i tư ng m i t o.5.15. Tham chi u t i các thu c tính c a i tư ng N u ban u ta nh nghĩa m t thu c tính b ng tên c a nó.ken) Như v y. ví d : i tư ng trư c khi nh car1.15. Ta có th g i t i các i tư ng trong m ng b i s th t ho c tên c a chúng. sau Phương th c là m t hàm ư c liên k t v i m t i tư ng.methodName = functionName Trong ó object là functionName là tên hàm i tư ng ang t n t i. Thu c tính ư c nh nghĩa này không ch có tác d ng i v i m t i tư ng mà có tác d ng i v i t t c các i tư ng khác cùng ki u. thay vì ph i qua m t xâu ký t hay m t giá tr s khi t o i tư ng. Ví d th <FORM> th hai trong m t document có thu c tính NAME là “myform” thì ta có th g i t i form ó b ng document.forms[1] ho c document. Tuy nhiên i u này là không úng i v i nh ng i tư ng tương ng c a HTML như m ng form. Ta cũng có th l y ư c thu c tính c a i tư ng owner b ng câu lênh sau: car2.1993. nh nghĩa các phương th c i tư ng ki u car.forms[“myForm”] ho c document.1992.3.rank) car2 = new car(“Nissan”. 3.15.color=”black” Như v y. thu c tính color c a i tư ng car1 ư c gán là “black”.color=null car1.

owner = owner this.6.owner ){ this. model. Như v y có th nh nghĩa l i i tư ng car như sau: function car(make.model document. } else{ if ( obj.make = make this.write(result) } Sau ó thêm phương th c này vào cho i tư ng car b ng cách thêm dòng l nh sau vào hàm nh nghĩa i tư ng : this.make + " "+ this. Ví d dư i ây dùng ki m tra xem ngư i dùng ã nh p d li u vào Input hay chưa và ki m tra xem dài ó có h p l không function validate(obj. Ví d ta có th nh nghĩa m t hàm có th nh d ng và hi n th các thu c tính c a các i tư ng ki u car ã xây d ng ph n trư c: function displayCar () { var result = "Abeautiful"+this.value==""){ alert(obj. minLength.length < minLength ){ alert(obj.methodName(<tham s >) Ta cũng có th nh nghĩa phương th c cho m t ki u phương th c ó vào trong hàm t o i tư ng.displayCar= displayCar.year = year this.g i phương th c c a i tư ng ta s d ng cú pháp: i tư ng b ng cách ưa object.value.displayCar= displayCar } 3.name + " is empty!").name + " is too long!") } i tư ng 103 .15.year+ " " + this. year. maxLength){ if (obj.name + " is too short!").model = model this.value. Tham chi u n i tư ng hi n hành JavaScript có m t t khoá c bi t là this mà ta có th s d ng nó cùng v i m t phương th c tham chi u t i i tư ng hi n th i.length > maxLength ){ alert(obj. } else if ( obj.

104 .15.7. Xóa i tư ng Ta có th xoá m t i tư ng b ng cách t cho nó tr t i giá tr Null (n u như ó là l n cu i cùng g i t i i tư ng).} } Sau ó ta có th g i hàm validate t m i s ki n onChange: <INPUT TYPE="Password" NAME="password" SIZE=3 onChange= "validate(this.15)" > Khi thu c tính this ư c g n v i m t ph n t c a Form thì ta có th s d ng cú pháp this.form tham chi u n Form cha c a ph n t ó 3. JavaScript s óng i tư ng ó ngay l p t c thông qua bi u th c gán.6.

............................................................................................... H p tho i Confirm .......................................................................................... C u trúc đi u khi n ..............................7..............9..2......................................... 58 3............................. Câu l nh đi u ki n IF ............................ 54 3........2... 59 Các ki u d li u ........................................................ 68 3................................................................................................................... Câu l nh NEW .................... 3.................... 55 Các lo i h p tho i trong JavaScript ...................................... 71 3........................................1........................................................................6.....................2........... 56 3...................4................ 61 3...............1............................ 68 3.......................................... WHILE ...........10..........................8............... 71 3...........................3..... Bi u th c và phân lo i bi u th c .................. Câu l nh l a ch n switch ............................ 68 3.................................................................8........................................................................................................... 72 105 ...............................1..........2..................................3....................................... M ng trong JavaScript ........................................................................4...................IN ........................ 70 3........................................ 53 Nhúng JavaScript vào file HTML............................... Th <NoScript> và </NoScript> ........................ Hi n th văn b n .............................. WITH ........5....... 69 3...............................................11..................9............................................................................ 56 3......................... 61 3.........3................................... 61 3............8............. H p tho i Alert ............... Thay đ i các giá tr trong m t m ng.. M t s hàm có s n ............ Bi n và ph m vi c a bi n .......... 3...................... 67 3......................................... Khai báo và s d ng hàm .. 3.................. Câu l nh Break và Continue............................................................................................................................. 65 3................................................... 54 3............4............................................................................................. 60 Bi u th c và các toán t ..1............2..... 54 3....................................... 69 3.........................10....................3.1...............2............................3.................. 68 3........................................................................... S d ng th SCRIPT ..2............................4.....................8................................ 72 3....................................................................................................4............5...............11.............................................................................................................................................11................. Câu l nh FOR.................7......................................... 69 3................................................2.......................... 3..... 55 3...................2....... T ng quan v Javascript ....9.............. Vòng l p FOR ...................2................................ 64 3................................... H p tho i Prompt ...7........................... Các lo i toán t .....2................................................ S d ng m t file ngu n JavaScript ..............9...1.... 63 3..................11. 66 3............... Các câu l nh thao tác trên đ i tư ng .......... Các thu c tính và phương th c c a m ng .................... 63 3..................................................... Khai báo m t m ng ........ Hàm t đ nh nghĩa ........3...........1............9..........................................8...................................................................4...................................................................................................................................................................10.......................................M cl c 3.........1. 57 3...... THIS............................8......................................

..............7...................................................6................................. 100 3... 96 3....... Mô hình đ i tư ng (OBJECT MODEL)...............................15....................14............13...........................................15.....13........................... Đ i tư ng Math .....14...........................11.................................................13..................................................... 98 M ng forms[] ........................14... 97 3.................5...............................15................................... 3........................... Các đ i tư ng trong JavaScript ...................................................14.14..............14................................................................................ Ph n t Radio .................4.... 85 3....................13......10................................................................................................... Ph n t Reset ........ T o m t đ i tư ng m i ...............................9...................................................................................8........................................................................................................5................. 79 3............ Ph n t Hidden .....4..............................................14............................................................................................................14...............2............................................ Ph n t submit .............................1.............................................12........................................................ 102 3..... Đ i tư ng History ......................12...........................3................. Các ph n t c a đ i tư ng Form........................ 89 3................. Đ nh nghĩa thêm các thu c tính cho m t ki u đ i tư ng......... 86 Đ i tư ng String ........... 85 Đ i tư ng Date ............................................. Đ i tư ng Form ................................................. 102 3.....13................13.............................................................................................. 93 3..... Tham chi u t i các thu c tính c a đ i tư ng ................ Ph n t Button ................................ 77 3........................................15............. 3.....13..................................... 98 M ng elements[] .................7......... 99 3. 93 3...................................... Ph n t Checkbox ....................................................................................................................................5.......................................... Đ i tư ng Anchors ..................................... 88 3........................ Ph n t Password ......14... 87 3................ Đ i tư ng và thu c tính ..............................................1........ 81 3.. 81 3.............................................................10...................... 93 3.......... Đ i tư ng Document ..............................13.......................................................... 97 Ph n t Textarea .................................. 90 3.....14...........................................13...13................................................................13..................2............................. 93 3... 99 3... 76 3............................................................................................ Đ i tư ng Navigator........................................................13................................................................................ Ph n t Select .........3................13........... 3. 84 3.....6...... 83 3....................................... 3.............. Ph n t File Upload .......................................................................................13...4................................... Đ i tư ng Frame ........3.. 3............8............................................ Ph n t Text ........ L p trình s lý s ki n .......................................................................................12................14.......... 102 106 ............14.................. Đ i tư ng Link .... Đ i tư ng Window ................... 79 3..........................15..14....................9................................................................................................... 84 3.............................................2............................ Đ nh nghĩa các phương th c ................................. 99 3........3..... 83 3........14.......................................................1................ Đ i tư ng Location..........................11..............................15..................... 96 3.................

................................................. 104 107 .........3.................................7.............. 103 3..............15...................................... Xóa đ i tư ng..15................................................6. Tham chi u đ n đ i tư ng hi n hành .