ch¬ng 1 Lêi nãi ®Çu -...

79
JavaScript 1 ch¬ng 1 Lêi nãi ®Çu Víi HTML and Microsoft FrontPage b¹n ®· biÕt c¸ch t¹o ra trang Web - tuy nhiªn chØ míi ë møc biÓu diÔn th«ng tin chø cha ph¶i lµ c¸c trang Web ®éng cã kh¶ n¨ng ®¸p øng c¸c sù kiÖn tõ phÝa ngêi dïng. H·ng Netscape ®· ®a ra ng«n ng÷ script cã tªn lµ LiveScript ®Ó thùc hiÖn chøc n¨ng nµy. Sau ®ã ng«n ng÷ nµy ®îc ®æi tªn thµnh JavaScript ®Ó tËn dông tÝnh ®¹i chóng cña ng«n ng÷ lËp tr×nh Java. MÆc dï cã nh÷ng ®iÓm t¬ng ®ång gi÷a Java vµ JavaScript, nhng chóng vÉn lµ hai ng«n ng÷ riªng biÖt. JavaScript lµ ng«n ng÷ díi d¹ng script cã thÓ g¾n víi c¸c file HTML. Nã kh«ng ®îc biªn dÞch mµ ®îc tr×nh duyÖt diÔn dÞch. Kh«ng gièng Java ph¶i chuyÓn thµnh c¸c m· dÔ biªn dÞch, tr×nh duyÖt ®äc JavaScript díi d¹ng m· nguån. ChÝnh v× vËy b¹n cã thÓ dÔ dµng häc JavaScript qua vÝ dô bëi v× b¹n cã thÓ thÊy c¸ch sö dông JavaScript trªn c¸c trang Web. 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. Tuy vËy JavaScript kh«ng lµ ng«n ng÷ h- íng ®èi tîng nh C++ hay Java do kh«ng hç trî c¸c líp hay tÝnh thõa kÕ. JavaScript cã thÓ ®¸p øng c¸c sù kiÖn nh t¶i hay lo¹i bá c¸c form. Kh¶ n¨ng nµy cho phÐp JavaScript trë thµnh mét ng«n ng÷ script ®éng. 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. C¸c tr×nh duyÖt web nh Nescape Navigator 2.0 trë ®i cã thÓ hiÓn thÞ nh÷ng c©u lÖnh JavaScript ®îc nhóng vµo trang HTML. Khi tr×nh duyÖt yªu cÇu mét trang, server sÏ göi ®Çy ®ñ néi dung cña trang ®ã, bao gåm c¶ HTML vµ c¸c c©u lÖnh JavaScript qua m¹ng tíi client. Client sÏ ®äc trang ®ã tõ ®Çu ®Õn cuèi, hiÓn thÞ c¸c kÕt qu¶ cña HTML vµ xö lý c¸c c©u lÖnh JavaScript khi nµo chóng xuÊt hiÖn. C¸c c©u lÖnh JavaScript ®îc nhóng trong mét trang HTML cã thÓ tr¶ lêi cho 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ô b¹n 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Ö. Môc ®Ých cña phÇn nµy lµ giíi thiÖu vÒ ng«n ng÷ lËp tr×nh JavaScript ®Ó b¹n cã thÓ viÕt c¸c script vµo file HTML cña m×nh. Khoa Toan tin, §¹i häc Quèc gia Hµ Néi

Transcript of ch¬ng 1 Lêi nãi ®Çu -...

Page 1: ch¬ng 1 Lêi nãi ®Çu - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../file_goc_775961.pdf · Khoa Toan tin, §¹i häc Quèc gia Hµ Néi. JavaScript

JavaScript 1

ch¬ng 1 Lêi nãi ®ÇuVíi HTML and Microsoft FrontPage b¹n ®· biÕt c¸ch t¹o ra trang Web - tuy nhiªn chØ míi ë møc biÓu diÔn th«ng tin chø cha ph¶i lµ c¸c trang Web ®éng cã kh¶ n¨ng ®¸p øng c¸c sù kiÖn tõ phÝa ngêi dïng. H·ng Netscape ®· ®a ra ng«n ng÷ script cã tªn lµ LiveScript ®Ó thùc hiÖn chøc n¨ng nµy. Sau ®ã ng«n ng÷ nµy ®îc ®æi tªn thµnh JavaScript ®Ó tËn dông tÝnh ®¹i chóng cña ng«n ng÷ lËp tr×nh Java. MÆc dï cã nh÷ng ®iÓm t¬ng ®ång gi÷a Java vµ JavaScript, nhng chóng vÉn lµ hai ng«n ng÷ riªng biÖt.

JavaScript lµ ng«n ng÷ díi d¹ng script cã thÓ g¾n víi c¸c file HTML. Nã kh«ng ®îc biªn dÞch mµ ®îc tr×nh duyÖt diÔn dÞch. Kh«ng gièng Java ph¶i chuyÓn thµnh c¸c m· dÔ biªn dÞch, tr×nh duyÖt ®äc JavaScript díi d¹ng m· nguån. ChÝnh v× vËy b¹n cã thÓ dÔ dµng häc JavaScript qua vÝ dô bëi v× b¹n cã thÓ thÊy c¸ch sö dông JavaScript trªn c¸c trang Web.

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. Tuy vËy JavaScript kh«ng lµ ng«n ng÷ h-íng ®èi tîng nh C++ hay Java do kh«ng hç trî c¸c líp hay tÝnh thõa kÕ.

JavaScript cã thÓ ®¸p øng c¸c sù kiÖn nh t¶i hay lo¹i bá c¸c form. Kh¶ n¨ng nµy cho phÐp JavaScript trë thµnh mét ng«n ng÷ script ®éng.

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.

C¸c tr×nh duyÖt web nh Nescape Navigator 2.0 trë ®i cã thÓ hiÓn thÞ nh÷ng c©u lÖnh JavaScript ®îc nhóng vµo trang HTML. Khi tr×nh duyÖt yªu cÇu mét trang, server sÏ göi ®Çy ®ñ néi dung cña trang ®ã, bao gåm c¶ HTML vµ c¸c c©u lÖnh JavaScript qua m¹ng tíi client. Client sÏ ®äc trang ®ã tõ ®Çu ®Õn cuèi, hiÓn thÞ c¸c kÕt qu¶ cña HTML vµ xö lý c¸c c©u lÖnh JavaScript khi nµo chóng xuÊt hiÖn.

C¸c c©u lÖnh JavaScript ®îc nhóng trong mét trang HTML cã thÓ tr¶ lêi cho 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ô b¹n 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Ö.

Môc ®Ých cña phÇn nµy lµ giíi thiÖu vÒ ng«n ng÷ lËp tr×nh JavaScript ®Ó b¹n cã thÓ viÕt c¸c script vµo file HTML cña m×nh.

Khoa Toan tin, §¹i häc Quèc gia Hµ Néi

Page 2: ch¬ng 1 Lêi nãi ®Çu - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../file_goc_775961.pdf · Khoa Toan tin, §¹i häc Quèc gia Hµ Néi. JavaScript

JavaScript 2

Ch¬ng 2 NhËp m«n JavaScript

2.1.Nhóng JavaScript vµo file HTML

B¹n cã thÓ nhóng JavaScript vµo mét file HTML theo mét trong c¸c c¸ch sau ®©y:

• Sö dông 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

• Sö dông mét biÓu thøc JavaScript lµm gi¸ trÞ cña mét thuéc tÝnh HTML

• Sö dông thÎ sù kiÖn (event handlers) trong mét thÎ HTML nµo ®ã

Trong ®ã, sö dông cÆp thÎ <SCRIPT>...</SCRIPT> vµ nhóng mét file nguån JavaScript lµ ®îc sö dông nhiÒu h¬n c¶.

2.1.1.Sö dông thÎ SCRIPT

Script ®îc ®a vµo file HTML b»ng c¸ch sö dông cÆp thÎ <SCRIPT> vµ <\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.

Thuéc tÝnh duy nhÊt ®îc ®Þnh nghÜa hiÖn thêi cho thÎ <SCRIPT> lµ “LANGUAGE=“ dïng ®Ó x¸c ®Þnh ng«n ng÷ script ®îc sö dông. Cã hai gi¸ trÞ ®îc ®Þnh nghÜa lµ "JavaScript" vµ "VBScript". Víi ch¬ng tr×nh viÕt b»ng JavaScript b¹n sö dông có ph¸p sau :

<SCRIPT LANGUAGE=”JavaScript”>

// INSERT ALL JavaScript HERE

</SCRIPT>

§iÓm kh¸c nhau gi÷a có ph¸p viÕt c¸c ghi chó gi÷a HTML vµ JavaScript lµ cho phÐp b¹n Èn c¸c m· JavaScript trong c¸c ghi chó cña file HTML, ®Ó c¸c tr×nh duyÖt cò kh«ng hç trî cho JavaScript cã thÓ ®äc ®îc nã nh trong vÝ dô sau ®©y:

<SCRIPT LANGUAGE=”JavaScript”>

<!-- From here the JavaScript code hidden

// INSERT ALL JavaScript HERE

// This is where the hidden ends -->

</SCRIPT>

Dßng cuèi cïng cña script cÇn cã dÊu // ®Ó tr×nh duyÖt kh«ng diÔn dÞch dßng nµy díi d¹ng m· JavaScript. C¸c vÝ dô trong ch¬ng nµy kh«ng chøa ®Æc ®iÓm Èn cña JavaScript ®Ó m· cã thÓ dÔ hiÓu h¬n.

Khoa Toan tin, §¹i häc Quèc gia Hµ Néi

Chó ý:

Ghi chó kh«ng ®îc ®Æt trong cÆp thÎ <- vµ -> nh ghi chó trong file HTML. Có ph¸p cña JavaScript t¬ng tù có ph¸p cña C nªn cã thÓ sö dông //

Page 3: ch¬ng 1 Lêi nãi ®Çu - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../file_goc_775961.pdf · Khoa Toan tin, §¹i häc Quèc gia Hµ Néi. JavaScript

JavaScript 3

2.1.2. Sö dông mét file nguån JavaScript

Thuéc tÝnh SRC cña thÎ <SCRIPT> cho phÐp b¹n chØ râ file nguån JavaScript ®îc sö dông (dïng ph¬ng ph¸p nµy hay h¬n nhóng trùc tiÕp mét ®o¹n lÖnh JavaScript vµo trang HTML).

Có ph¸p:

<SCRIPT SRC="file_name.js">

....

</SCRIPT>

Thuéc tÝnh 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. C¸c c©u lÖnh JavaScript n»m trong cÆp thÎ <SCRIPT> vµ </SCRIPT> cã chøa thuéc tinh SRC trõ khi nã cã lçi. VÝ dô b¹n muèn ®a dßng lÖnh sau vµo gi÷a cÆp thÎ <SCRIPT SRC="..."> vµ </SCRIPT>:

document.write("Kh«ng t×m thÊy file JS ®a vµo!");

Thuéc tÝnh SRC cã thÓ ®îc ®Þnh râ b»ng ®Þa chØ URL, c¸c liªn kÕt hoÆc c¸c ®êng dÉn tuyÖt ®èi, vÝ dô:

<SCRIPT SRC=" http://cse.com.vn ">

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.

Tªn file cña c¸c hµm JavaScript bªn ngoµi cÇn cã ®u«i .js, vµ server sÏ ph¶i ¸nh x¹ ®u«i .js ®ã tíi kiÓu MIME application/x-javascript. §ã lµ nh÷ng g× mµ server göi trë l¹i phÇn Header cña file HTML. §Ó ¸nh x¹ ®u«i nµy vµo kiÓu MIME, ta thªm dßng sau vµo file mime.types trong ®êng dÉn cÊu h×nh cña server, sau ®ã khëi ®éng l¹i server:

type=application/x-javascript

NÕu server kh«ng ¸nh x¹ ®îc ®u«i .js tíi kiÓu MIME application/x-javascript , Navigator sÏ t¶i file JavaScript ®îc chØ ra trong thuéc tÝnh SRC vÒ kh«ng ®óng c¸ch.

Trong vÝ dô sau, hµm bar cã chøa x©u "left" n»m trong mét cÆp dÊu nh¸y kÐp:

function bar(widthPct){

document.write(" <HR ALIGN='LEFT' WIDTH="+widthPct+"%>")

}

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 trong hép Preferences/Advanced.

Khoa Toan tin, §¹i häc Quèc gia Hµ Néi

Chó ý

Khi b¹n muèn chØ ra mét x©u trÝch dÉn trong mét x©u kh¸c cÇn sö dông dÊu nh¸y ®¬n ( ' ) ®Ó ph©n ®Þnh x©u ®ã. §iÒu nµy cho phÐp script nhËn ra x©u ký tù

Page 4: ch¬ng 1 Lêi nãi ®Çu - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../file_goc_775961.pdf · Khoa Toan tin, §¹i häc Quèc gia Hµ Néi. JavaScript

JavaScript 4

VÝ dô:

<NOSCRIPT>

<B> Trang nµy cã sö dông JavaScript. Do ®ã b¹n cÇn sö dông tr×nh duyÖt Netscape Navigator tõ version 2.0 trë ®i!

<BR>

<A HREF="http://home.netscape.com/comprd/mirror/index.html">

H·y kÝch chuét vµo ®©y ®Ó t¶i vÒ phiªn b¶n Netscape míi h¬n

</A>

</BR>

NÕu b¹n ®· sö dông tr×nh duyÖt Netscape tõ 2.0 trë ®i mµ vÉn ®äc ®îc dßng ch÷ nµy th× h·y bËt Preferences/Advanced/JavaScript lªn

</NOSCRIPT>

H×nh 2.3: Minh ho¹ thÎ NOSCRIPT

2.3. HiÓn thÞ mét dßng text

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 cña client mét dßng text tuÇn tù trong file HTML. JavaScript sÏ x¸c ®Þnh ®iÓm mµ nã sÏ xuÊt ra trong file HTML vµ dßng text kÕt qu¶ sÏ ®îc dÞch nh c¸c dßng HTML kh¸c vµ hiÓn thÞ trªn trang.

H¬n n÷a, JavaScript cßn cho phÐp ngêi lËp tr×nh sinh ra mét hép th«ng b¸o hoÆc x¸c nhËn gåm mét hoÆc hai nót. Ngoµi ra, dßng text vµ c¸c con sè cßn cã thÓ hiÓn thÞ trong trêng TEXT vµ TEXTAREA cña mét form.

Trong phÇn nµy, ta sÏ häc c¸ch thøc write() vµ writeln() cña ®èi tîng document .

Khoa Toan tin, §¹i häc Quèc gia Hµ Néi

Page 5: ch¬ng 1 Lêi nãi ®Çu - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../file_goc_775961.pdf · Khoa Toan tin, §¹i häc Quèc gia Hµ Néi. JavaScript

JavaScript 5

§èi tîng document trong JavaScript ®îc thiÕt kÕ s½n hai c¸ch thøc ®Ó xuÊt mét dßng text ra mµn h×nh client: write() vµ writeln(). C¸ch gäi mét c¸ch thøc cña mét ®èi tîng nh sau:

object_name.property_name

D÷ liÖu mµ c¸ch thøc dïng ®Ó thùc hiÖn c«ng viÖc cña nã ®îc ®a vµo dßng tham sè, vÝ dô:

document.write("Test");

document.writeln('Test');

C¸ch thøc write () xuÊt ra mµn h×nh x©u Text nhng 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. Hai c¸ch thøc nµy ®Òu cho phÐp xuÊt ra thÎ HTML.

VÝ dô: C¸ch thøc write() xuÊt ra thÎ HTML

<HTML>

<HEAD>

<TITLE>Ouputting Text</TITLE>

</HEAD>

<BODY> This text is plain.<BR> <B>

<SCRIPT LANGUAGE="JavaScript">

<!-- HIDE FROM OTHER BROWSERS

document.write("This text is bold.</B>");

// STOP HIDING FROM OTHER BROWSERS -->

</SCRIPT>

</BODY>

</HTML>

Khoa Toan tin, §¹i häc Quèc gia Hµ Néi

Page 6: ch¬ng 1 Lêi nãi ®Çu - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../file_goc_775961.pdf · Khoa Toan tin, §¹i häc Quèc gia Hµ Néi. JavaScript

JavaScript 6

VÝ dô: Sù kh¸c nhau cña write() vµ writeln():

<PRE>

<SCRIPT LANGUAGE="JavaScript">

<!-- HIDE FROM OTHER BROWSERS

document.writeln("One,");

document.writeln("Two,");

document.write("Three ");

document.write("...");

// STOP HIDING FROM OTHER BROWSERS -->

</SCRIPT>

</PRE>

Khi duyÖt sÏ ®îc kÕt qu¶:

H×nh 2.5: Sù kh¸c nhau cña write() vµ writeln()

2.4. Giao tiÕp víi ngêi sö dông

JavaScript hç trî kh¶ n¨ng cho phÐp ngêi lËp tr×nh t¹o ra mét hép héi tho¹i. Néi dung cña hép héi tho¹i phô thuéc vµo trang HTML cã chøa ®o¹n script mµ kh«ng lµm ¶nh hëng ®Õn viÖc xuÊt néi dung trang.

C¸ch ®¬n gi¶n ®Ó lµm viÖc ®ã lµ sö dông c¸ch thøc alert(). §Ó sö dông ®îc c¸ch thøc nµy, b¹n ph¶i ®a vµo mét dßng text nh khi sö dông document.write() vµ document.writeln() trong phÇn tríc. VÝ dô:

alert("NhÊn vµo OK ®Ó tiÕp tôc");

Khoa Toan tin, §¹i häc Quèc gia Hµ Néi

Page 7: ch¬ng 1 Lêi nãi ®Çu - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../file_goc_775961.pdf · Khoa Toan tin, §¹i häc Quèc gia Hµ Néi. JavaScript

JavaScript 7

Khi ®ã file sÏ chê cho ®Õn khi ngêi sö dông nhÊn vµo nót OK råi míi tiÕp tôc thùc hiÖn

Th«ng thêng, c¸ch thøc 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ô cha s½n sµng ®Ó truy nhËp d÷ liÖu

Tuy nhiªn c¸ch thøc alert() míi chØ cho phÐp th«ng b¸o víi ngêi sö dông chø cha thùc sù giao tiÕp víi ngêi sö dông. JavaScript cung cÊp mét c¸ch thøc kh¸c ®Ó giao tiÕp víi ng-êi sö dông lµ promt() . 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 b¹n ®a vµo, nhng 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ô: 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 lu vµo file Hello.html

<HTML>

<HEAD>

<TITLE> JavaScript Exemple </TITLE>

<SCRIPT LANGUAGE= “JavaScript”>

var name=window.prompt(“Hello! What’s your name ?”,””);

document.write(“Hello ” + name + “ ! I hope you like JavaScript ”);

</SCRIPT>

</HEAD>

<BODY>

</BODY>

</HTML>

Khoa Toan tin, §¹i häc Quèc gia Hµ Néi

Page 8: ch¬ng 1 Lêi nãi ®Çu - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../file_goc_775961.pdf · Khoa Toan tin, §¹i häc Quèc gia Hµ Néi. JavaScript

JavaScript 8

Khi duyÖt cã kÕt qu¶:

VÝ dô nµy hiÓn thÞ dÊu nh¾c nhËp vµo tªn víi ph¬ng thøc window.prompt . Gi¸ trÞ ®¹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 .

B©y giê b¹n ®· cã ý tëng vÒ c¸c chøc n¨ng cã thÓ ®¹t ®îc qua JavaScript, chóng ta h·y tiÕp tôc t×m hiÓu thªm vÒ chÝnh ng«n ng÷ nµy.

Khoa Toan tin, §¹i häc Quèc gia Hµ Néi

H×nh2.1: HiÓn thÞ cöa sæ nhËp tªn

H×nh 2.2: HiÓn thÞ lêi chµo ng­êi nhËp

Page 9: ch¬ng 1 Lêi nãi ®Çu - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../file_goc_775961.pdf · Khoa Toan tin, §¹i häc Quèc gia Hµ Néi. JavaScript

JavaScript 9

2.5. §iÓm l¹i c¸c lÖnh vµ më réng

LÖnh/Më réng KiÓu M« t¶SCRIPT thÎ HTML Hép chøa c¸c lÖnh JavaScript

SRC Thuéc tÝnh cña thÎ SCRIPT

Gi÷ ®Þa chØ cña file JavaScript bªn ngoµi. File nµy ph¶i cã phÇn ®u«i .js

LANGUAGE thuéc tÝnh cña thÎ SCRIPT

§Þnh râ ng«n ng÷ script ®îc sö dông (JavaScript hoÆc VBScript)

// Ghi chó trong JavaScript

§¸nh dÊu ghi chó mét dßng trong ®o¹n script

/*...*/ Ghi chó trong JavaScript

§¸nh dÊu ghi chó mét khèi trong ®o¹n script

document.write() c¸ch thøc JavaScript

XuÊt ra mét x©u trªn cöa sæ hiÖn thêi mét c¸ch tuÇn tù theo file HTML cã ®o¹n script ®ã

document.writeln() C¸ch thøc JavaScript

T¬ng tù c¸ch thøc document.write() nhng viÕt xong tù xuèng dßng.

alert() C¸ch thøc cña JavaScript

HiÓn thÞ mét dßng th«ng b¸o trªn hép héi tho¹i

promt() C¸ch thøc JavaScript

HiÓn thÞ mét dßng th«ng b¸o trong hép héi tho¹i ®ång thêi cung cÊp mét trêng nhËp d÷ liÖu ®Ó ngêi sö dông nhËp vµo.

Khoa Toan tin, §¹i häc Quèc gia Hµ Néi

Page 10: ch¬ng 1 Lêi nãi ®Çu - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../file_goc_775961.pdf · Khoa Toan tin, §¹i häc Quèc gia Hµ Néi. JavaScript

JavaScript 10

Ch¬ng 3 BiÕn trong JavaScript

3.1. BiÕn vµ ph©n lo¹I biÕn

Tªn biÕn trong JavaScript ph¶i b¾t ®Çu b»ng ch÷ hay dÊu g¹ch díi. C¸c ch÷ sè kh«ng ®îc sö dông ®Ó më ®Çu tªn mét biÕn nhng cã thÓ sö dông sau ký tù ®Çu tiªn.

Ph¹m vi cña biÕn cã thÓ lµ mét trong hai kiÓu sau:

• BiÕn toµn côc: Cã thÓ ®îc truy cËp tõ bÊt kú ®©u trong øng dông.®îc khai b¸o nh sau :

x = 0;

• BiÕn côc bé: ChØ ®îc truy cËp trong ph¹m vi ch¬ng tr×nh mµ nã khai b¸o. BiÕn côc bé ®îc khai b¸o trong mét hµm víi tõ kho¸ var nh sau:

var x = 0;BiÕn toµn côc cã thÓ sö dông tõ kho¸ var , tuy nhiªn ®iÒu nµy kh«ng thùc sù cÇn thiÕt.

3.2. BiÓu diÔn tõ tè trong JavaScript

Tõ tè lµ c¸c gi¸ trÞ trong ch¬ng tr×nh kh«ng thay ®æi. Sau ®©y lµ c¸c vÝ dô vÒ tõ tè:

8

“The dog ate my shoe”

true

3.3. KiÓu d÷ liÖu

Kh¸c víi C++ hay Java, JavaScript lµ ng«n ng÷ cã tÝnh ®Þnh kiÓu thÊp. §iÒu nµy cã nghÜa lµ kh«ng ph¶i chØ ra kiÓu d÷ liÖu khi khai b¸o biÕn. KiÓu d÷ liÖu ®îc tù ®éng chuyÓn thµnh kiÓu phï hîp khi cÇn thiÕt.

VÝ dô file Variable.Html:

<HTML>

<HEAD>

<TITLE> Datatype Example </TITLE>

<SCRIPT LANGUAGE= "JavaScript">

var fruit='apples';

var numfruit=12;

numfruit = numfruit + 20;

var temp ="There are " + numfruit + " " + ".";

document.write(temp);

</SCRIPT>

</HEAD>

<BODY>

</BODY>

</HTML>

Khoa Toan tin, §¹i häc Quèc gia Hµ Néi

Chó ý

Kh¸c víi C, trong JavaScript kh«ng cã kiÓu h»ng sè CONST ®Ó biÓu diÔn mét gi¸ trÞ

Page 11: ch¬ng 1 Lêi nãi ®Çu - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../file_goc_775961.pdf · Khoa Toan tin, §¹i häc Quèc gia Hµ Néi. JavaScript

JavaScript 11

C¸c tr×nh duyÖt hç trî JavaScript sÏ xö lý chÝnh x¸c vÝ dô trªn vµ ®a ra kÕt qu¶ díi ®©y:

Tr×nh diÔn dÞch JavaScript sÏ xem biÕn numfruit cã kiÓu nguyªn khi céng víi 20 vµ cã kiÓu chuçi khi kÕt hîp víi biÓn temp.

Trong JavaScript, cã bèn kiÓu d÷ liÖu sau ®©y: kiÓu sè nguyªn, kiÓu dÊu phÈy ®éng, kiÓu logic vµ kiÓu chuçi.

1.1.1. 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) - cã thÓ biÓu diÔn sè nguyªn theo c¬ sè 10, chó ý r»ng ch÷ sè ®Çu tiªn ph¶i kh¸c 0.

• HÖ c¬ sè 8 (hÖ b¸t ph©n) - sè nguyªn cã thÓ biÓu diÔn díi d¹ng b¸t ph©n víi ch÷ sè ®Çu tiªn lµ sè 0.

• HÖ c¬ sè 16 (hÖ thËp lôc ph©n) - 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.

1.1.2. KiÓu dÊu phÈy ®éng (Floating Point)

Mét literal cã kiÓu dÊu phÈy ®éng cã 4 thµnh phÇn sau:

• PhÇn nguyªn thËp ph©n.

• DÊu chÊm thËp ph©n (.).

• PhÇn d.

• PhÇn mò.

Khoa Toan tin, §¹i häc Quèc gia Hµ Néi

H×nh 3.1: KÕt qu¶ cña xö lý d÷ liÖu

Page 12: ch¬ng 1 Lêi nãi ®Çu - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../file_goc_775961.pdf · Khoa Toan tin, §¹i häc Quèc gia Hµ Néi. JavaScript

JavaScript 12

§Ó ph©n biÖt kiÓu dÊu phÈy ®éng víi kiÓu sè nguyªn, ph¶i cã Ýt nhÊt mét ch÷ sè theo sau dÊu chÊm hay E. VÝ dô:

9.87

-0.85E4

9.87E14

.98E-3

1.1.3. KiÓu logic (Boolean)

KiÓu logic ®îc sö dông ®Ó chØ hai ®iÒu kiÖn : ®óng hoÆc sai. MiÒn gi¸ trÞ cña kiÓu nµy chØ cã hai gi¸ trÞ

• true.

• false.

1.1.4. KiÓu chuçi (String)

Mét literal 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 " ... " hay '... '. VÝ dô:

“The dog ran up the tree”

‘The dog barked’

“100”

§Ó biÓu diÔn dÊu nh¸y kÐp ( " ), trong chuçi sö dông ( \" ), vÝ dô:

document.write(“ \”This text inside quotes.\” ”);

Khoa Toan tin, §¹i häc Quèc gia Hµ Néi

Page 13: ch¬ng 1 Lêi nãi ®Çu - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../file_goc_775961.pdf · Khoa Toan tin, §¹i häc Quèc gia Hµ Néi. JavaScript

JavaScript 13

2. X©y dùng c¸c biÓu thøc trong JavaScript

®Þnh nghÜa vµ ph©n lo¹I biÓu thøcTËp hîp c¸c literal, biÕn vµ c¸c to¸n tö nh»m ®¸nh gi¸ mét gi¸ trÞ nµo ®ã ®îc gäi lµ mét biÓu thøc (expression). VÒ c¬ b¶n cã ba kiÓu biÓu thøc trong JavaScript:

• Sè häc: Nh»m ®Ó lîng gi¸ gi¸ trÞ sè. VÝ dô (3+4)+(84.5/3) ®îc ®¸nh gi¸ b»ng 197.1666666667.

• Chuçi: Nh»m ®Ó ®¸nh gi¸ chuçi. VÝ dô "The dog barked" + barktone + "!" lµ The dog barked ferociously!.

• Logic: Nh»m ®¸nh gi¸ gi¸ trÞ logic. VÝ dô temp>32 cã thÓ nhËn gi¸ trÞ sai. JavaScript còng hç trî biÓu thøc ®iÒu kiÖn, có ph¸p nh sau:

(condition) ? valTrue : valFalse

NÕu ®iÒu kiÖn condition ®îc ®¸nh gi¸ lµ ®óng, biÓu thøc nhËn gi¸ trÞ valTrue, ngîc l¹i nhËn gi¸ trÞ valFalse. VÝ dô:

state = (temp>32) ? "liquid" : "solid"

Trong vÝ dô nµy biÕn state ®îc g¸n gi¸ trÞ "liquid" nÕu gi¸ trÞ cña biÕn temp lín h¬n 32; trong trêng hîp ngîc l¹i nã nhËn gi¸ trÞ "solid".

C¸c to¸n tö (operator)To¸n tö ®îc sö dông ®Ó thùc hiÖn mét phÐp to¸n nµo ®ã trªn d÷ liÖu. 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. C¸c to¸n tö trong JavaScript cã thÓ ®îc nhãm thµnh c¸c lo¹i sau ®©y: g¸n, so s¸nh, sè häc, chuçi, logic vµ logic bitwise.

2.1.1. 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. Bªn c¹nh ®ã JavaScript cßn hç trî mét sè kiÓu to¸n tö g¸n rót gän.

KiÓu g¸n th«ng thêng KiÓu g¸n rót gän

x = x + y x + = y

x = x - y x - = y

x = x * y x * = y

x = x / y x / = y

x = x % y x % = y

2.1.2. 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. Sau ®©y lµ mét sè to¸n tö so s¸nh trong JavaScript:

Khoa Toan tin, §¹i häc Quèc gia Hµ Néi

Page 14: ch¬ng 1 Lêi nãi ®Çu - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../file_goc_775961.pdf · Khoa Toan tin, §¹i häc Quèc gia Hµ Néi. JavaScript

JavaScript 14

== Tr¶ l¹i gi¸ trÞ ®óng nÕu to¸n h¹ng bªn tr¸i b»ng to¸n h¹ng bªn ph¶i

!= Tr¶ l¹i gi¸ trÞ ®óng nÕu to¸n h¹ng bªn tr¸i kh¸c to¸n h¹ng bªn ph¶i

> Tr¶ l¹i gi¸ trÞ ®óng nÕu to¸n h¹ng bªn tr¸i lín h¬n to¸n h¹ng bªn ph¶i

>= Tr¶ l¹i gi¸ trÞ ®ó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 ph¶i

< Tr¶ l¹i gi¸ trÞ ®óng nÕu to¸n h¹ng bªn tr¸i nhá h¬n to¸n h¹ng bªn ph¶i

<= Tr¶ l¹i gi¸ trÞ ®óng nÕu to¸n h¹ng bªn tr¸i nhá h¬n hoÆc b»ng to¸n h¹ng bªn ph¶i

2.1.3. Sè häc

Bªn c¹nh c¸c to¸n tö céng (+), trõ (-), nh©n (*), chia (/) th«ng thêng, JavaScript cßn hç trî c¸c to¸n tö sau ®©y:

var1% var2 To¸n tö phÇn d, tr¶ l¹i phÇn d khi chia var1 cho var2

- To¸n tö phñ ®Þnh, cã gi¸ trÞ phñ ®Þnh to¸n h¹ng

var++ To¸n tö nµy t¨ng var lªn 1 (cã thÓ biÓu diÔn lµ ++var)

var-- To¸n tö nµy gi¶m var ®i 1 (cã thÓ biÓu diÔn lµ --var)

2.1.4. Chuçi

Khi ®îc sö dông víi chuçi, to¸n tö + ®îc coi lµ kÕt hîp hai chuçi,

vÝ dô:

"abc" + "xyz" ®îc "abcxyz"

2.1.5. Logic

JavaScript hç trî c¸c to¸n tö logic sau ®©y:

expr1 && expr2 Lµ to¸n tö logic AND, tr¶ l¹i gi¸ trÞ ®óng nÕu c¶ expr1 vµ expr2 cïng ®óng.

expr1 || expr2 Lµ to¸n tö logic OR, tr¶ l¹i gi¸ trÞ ®óng nÕu Ýt nhÊt

Khoa Toan tin, §¹i häc Quèc gia Hµ Néi

Chó ýNÕu b¹n g¸n gi¸ trÞ cña to¸n tö ++ hay -- vµo mét biÕn, nh y= x++, 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 -- víi tªn biÕn (lµ x trong trêng hîp nµy). NÕu ++ ®øng tríc x, x sÏ ®îc t¨ng hoÆc gi¶m tríc khi gi¸ trÞ x ®-îc g¸n cho y. NÕu ++ hay -- ®øng sau x, gi¸ trÞ cña x ®îc g¸n cho y tríc khi nã ®îc t¨ng hay gi¶m.

Page 15: ch¬ng 1 Lêi nãi ®Çu - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../file_goc_775961.pdf · Khoa Toan tin, §¹i häc Quèc gia Hµ Néi. JavaScript

JavaScript 15

mét trong hai expr1 vµ expr2 ®óng.

! expr Lµ to¸n tö logic NOT phñ ®Þnh gi¸ trÞ cña expr.

2.1.6. Bitwise

Víi c¸c to¸n tö thao t¸c trªn bit, ®Çu tiªn gi¸ trÞ ®îc chuyÓn díi d¹ng sè nguyªn 32 bit, sau ®ã lÇn lît thùc hiÖn c¸c phÐp to¸n trªn tõng bit.

& To¸n tö bitwise AND, tr¶ l¹i gi¸ trÞ 1 nÕu c¶ hai bit cïng lµ 1.

| To¸n tö bitwise OR, tr¶ l¹i gi¸ trÞ 1 nÕu mét trong hai bit lµ 1.

^ To¸n tö bitwise XOR, 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. Gi¸ trÞ ®îc chuyÓn thµnh sè nguyªn 32 bit tríc khi dÞch chuyÓn. Sau khi dÞch chuyÓn, gi¸ trÞ l¹i ®îc chuyÓn thµnh kiÓu cña to¸n h¹ng bªn tr¸i. Sau ®©y lµ c¸c to¸n tö dÞch chuyÓn:

<< To¸n tö dÞch 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¸c bit bÞ chuyÓn sang tr¸i bÞ mÊt vµ 0 thay vµo phÝa bªn ph¶i. VÝ dô: 4<<2 trë thµnh 16 (sè nhÞ ph©n 100 trë thµnh sè nhÞ ph©n 10000)

>> To¸n tö dÞch ph¶i. 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. 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. VÝ dô: 16>>2 trë thµnh 4 (sè nhÞ ph©n 10000

trë thµnh sè nhÞ ph©n 100)

>>> To¸n tö dÞch ph¶i cã chÌn 0. 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. Bit dÊu ®îc dÞch chuyÓn tõ tr¸i (gièng >>). Nh÷ng bit ®îc dÞch sang ph¶i bÞ xo¸ ®i. VÝ dô: -8>>>2 trë thµnh 1073741822 (bëi c¸c bit dÊu ®· trë thµnh mét phÇn cña sè). TÊt nhiªn víi sè d¬ng kÕt qu¶ cña to¸n tö >> vµ >>> lµ gièng nhau.

Cã mét sè to¸n tö dÞch chuyÓn bitwise rót gän:

KiÓu bitwise th«ng thêng KiÓu bitwise rót gän

x = x << y x << = y

x = x >> y x - >> y

x = x >>> y x >>> = y

x = x & y x & = y

x = x ^ y x ^ = y

x = x | y x | = y

Khoa Toan tin, §¹i häc Quèc gia Hµ Néi

Page 16: ch¬ng 1 Lêi nãi ®Çu - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../file_goc_775961.pdf · Khoa Toan tin, §¹i häc Quèc gia Hµ Néi. JavaScript

JavaScript 16

Bµi tËp

2.1.7. C©u hái

H·y ®¸nh gi¸ c¸c biÓu thøc sau:

1. a. 7 + 5

b. "7" + "5"

c. 7 == 7

d. 7 >= 5

e. 7 <= 7

2. f. (7 < 5) ? 7 : 5

g. (7 >= 5) && (5 > 5)

h. (7 >= 5) || (5 > 5)

2.1.8. Tr¶ lêi

C¸c biÓu thøc ®îc ®¸nh gi¸ nh sau:

1. a. 12

b. "75"

c. true

d. true

e. true

2. f. 5

g. false

h. true

Khoa Toan tin, §¹i häc Quèc gia Hµ Néi

Page 17: ch¬ng 1 Lêi nãi ®Çu - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../file_goc_775961.pdf · Khoa Toan tin, §¹i häc Quèc gia Hµ Néi. JavaScript

JavaScript 17

3. C¸c lÖnhCã thÓ chia c¸c lÖnh cña JavaScript thµnh ba nhãm sau:

• LÖnh ®iÒu kiÖn.

• LÖnh lÆp.

• LÖnh th¸o t¸c trªn ®èi tîng.

C©u lÖnh ®iÒu kiÖnC©u lÖnh ®iÒu kiÖn cho phÐp ch¬ng tr×nh ra quyÕt ®Þnh vµ thùc hiÖn c«ng viÖc nµo ®Êy dùa trªn kÕt qu¶ cña quyÕt ®Þnh. Trong JavaScript, c©u lÖnh ®iÒu kiÖn lµ if...else

if ... else

C©u lÖnh nµy cho phÐp b¹n kiÓm tra ®iÒu kiÖn 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. Nhãm lÖnh sau else kh«ng b¾t buéc ph¶i cã, 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

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

}

VÝ dô:

if (x==10){

document.write(“x b»ng 10, ®Æt l¹i x b»ng 0.”);

x = 0;

}

else

document.write(“x kh«ng b»ng 10.”);

C©u lÖnh lÆpC©u lÖnh lÆp thÓ hiÖn viÖc lÆp ®i lÆp l¹i mét ®o¹n m· cho ®Õn khi biÓu thøc ®iÒu kiÖn ®îc ®¸nh gi¸ lµ ®óng. JavaScipt cung cÊp hai kiÓu c©u lÖnh lÆp:

Khoa Toan tin, §¹i häc Quèc gia Hµ Néi

Chó ý

Ký tù { vµ } ®îc sö dông ®Ó t¸ch c¸c khèi m·.

Page 18: ch¬ng 1 Lêi nãi ®Çu - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../file_goc_775961.pdf · Khoa Toan tin, §¹i häc Quèc gia Hµ Néi. JavaScript

JavaScript 18

• for loop

• while loop

3.1.1. Vßng lÆp for

Vßng lÆp for thiÕt lËp mét biÓu thøc khëi ®Çu - initExpr, sau ®ã lÆp mét ®o¹n m· cho ®Õn khi biÓu thøc <®iÒu kiÖn> ®îc ®¸nh gi¸ lµ ®óng. Sau khi kÕt thóc mçi vßng lÆp, biÓu thøc incrExpr ®îc ®¸nh gi¸ l¹i.

Có ph¸p:

for (initExpr; <®iÒu kiÖn> ; incrExpr){

//C¸c lÖnh ®îc thùc hiÖn trong khi lÆp

}

VÝ dô:

<HTML> <HEAD>

<TITLE>For loop Example </TITLE>

<SCRIPT LANGUAGE= "JavaScript">

for (x=1; x<=10 ; x++) {

y=x*25;

document.write("x ="+ x +";y= "+ y + "<BR>");

}

</SCRIPT>

</HEAD>

<BODY></BODY>

</HTML>

Khoa Toan tin, §¹i häc Quèc gia Hµ Néi

Page 19: ch¬ng 1 Lêi nãi ®Çu - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../file_goc_775961.pdf · Khoa Toan tin, §¹i häc Quèc gia Hµ Néi. JavaScript

JavaScript 19

VÝ dô nµy lu vµo file for_loop.Html.

Vßng lÆp nµy sÏ thùc hiÖn khèi m· lÖnh cho ®Õn khi x>10.

3.1.2. 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:

while (<®iÒu kiÖn>)

{

//C¸c c©u lÖnh thùc hiÖn trong khi lÆp

}

VÝ dô:

x=1;

while (x<=10){

y=x*25;

document.write("x="+x +"; y = "+ y + "<BR>");

x++;

}

KÕt qu¶ cña vÝ dô nµy gièng nh vÝ dô tríc.

3.1.3. Break

C©u lÖnh break dïng ®Ó kÕt thóc viÖc thùc hiÖn cña vßng lÆp for hay while. Ch¬ng tr×nh ®îc tiÕp tôc thùc hiÖn t¹i c©u lÖnh ngay sau chç kÕt thóc cña vßng lÆp.

Có ph¸p

break;

Khoa Toan tin, §¹i häc Quèc gia Hµ Néi

H×nh 5.1: KÕt qu¶ cña lÖnh for...loop

Page 20: ch¬ng 1 Lêi nãi ®Çu - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../file_goc_775961.pdf · Khoa Toan tin, §¹i häc Quèc gia Hµ Néi. JavaScript

JavaScript 20

§o¹n m· sau lÆp cho ®Õn khi x lín h¬n hoÆc b»ng 100. Tuy nhiªn nÕu gi¸ trÞ x ®a vµo vßng lÆp nhá h¬n 50, vßng lÆp sÏ kÕt thóc

VÝ dô:

while (x<100)

{

if (x<50) break;

x++;

}

3.1.4. continue

LÖnh continue gièng lÖnh break nhng kh¸c ë chç viÖc lÆp ®îc kÕt thóc vµ b¾t ®Çu tõ ®Çu vßng lÆp. §èi víi vßng lÆp while, lÖnh continue ®iÒu khiÓn quay l¹i <®iÒu kiÖn>; víi for, lÖnh continue ®iÒu khiÓn quay l¹i incrExpr.

Có ph¸p

continue;

VÝ dô:

§o¹n m· sau t¨ng x tõ 0 lªn 5, nh¶y lªn 8 vµ tiÕp tôc t¨ng lªn 10

x=0;

while (x<=10)

{

document.write(“Gi¸ trÞ cña x lµ:”+ x+”<BR>”);

if (x=5)

{

x=8;

continue;

}

x++;

}

C¸c c©u lÖnh thao t¸c trªn ®èi tîngJavaScript lµ mét ng«n ng÷ dùa trªn ®èi tîng, do ®ã nã cã mét sè c©u lÖnh lµm viÖc víi c¸c ®èi tîng.

3.1.5. for...in

C©u lÖnh nµy ®îc sö dông ®Ó lÆp tÊt c¶ c¸c thuéc tÝnh (properties) cña mét ®èi tîng. Tªn biÕn cã thÓ lµ mét gi¸ trÞ bÊt kú, chØ cÇn thiÕt khi b¹n sö dông c¸c thuéc tÝnh trong vßng lÆp. VÝ dô sau sÏ minh ho¹ ®iÒu nµy

Có ph¸p

for (<variable> in <object>)

{

Khoa Toan tin, §¹i häc Quèc gia Hµ Néi

Page 21: ch¬ng 1 Lêi nãi ®Çu - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../file_goc_775961.pdf · Khoa Toan tin, §¹i häc Quèc gia Hµ Néi. JavaScript

JavaScript 21

//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 tªn cña mçi thuéc tÝnh. KÕt qu¶ ®îc minh ho¹ trªn h×nh 5.2.

<HTML>

<HEAD>

<TITLE>For in Example </TITLE>

<SCRIPT LANGUAGE= "JavaScript">

document.write("The properties of the Window object are: <BR>");

for (var x in window)

document.write(" "+ x + ", ");

</SCRIPT>

</HEAD>

<BODY>

</BODY>

</HTML>

Khoa Toan tin, §¹i häc Quèc gia Hµ Néi

Page 22: ch¬ng 1 Lêi nãi ®Çu - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../file_goc_775961.pdf · Khoa Toan tin, §¹i häc Quèc gia Hµ Néi. JavaScript

JavaScript 22

3.1.6. new

BiÕn new ®îc thùc hiÖn ®Ó t¹o ra mét thÓ hiÖn míi cña mét ®èi tîng

Có ph¸p

objectvar = new object_type ( param1 [,param2]... [,paramN])

VÝ dô sau t¹o ®èi tîng person cã c¸c thuéc tÝnh firstname, lastname, age, sex. Chó ý r»ng tõ kho¸ this ®îc sö dông ®Ó chØ ®èi tîng trong hµm person. Sau ®ã ba thÓ hiÖn cña ®èi tîng person ®îc t¹o ra b»ng lÖnh new

<HTML>

<HEAD>

<TITLE>New Example </TITLE>

<SCRIPT LANGUAGE= "JavaScript">

function person(first_name, last_name, age, sex){

this.first_name=first_name;

this.last_name=last_name;

this.age=age;

this.sex=sex;

}

person1= new person("Thuy", "Dau Bich", "23", "Female");

person2= new person("Chung", "Nguyen Bao", "24", "Male");

person3= new person("Binh", "Nguyen Nhat", "24", "Male");

Khoa Toan tin, §¹i häc Quèc gia Hµ Néi

H×nh 5.2: KÕt qu¶ cña lÖnh for...in

Page 23: ch¬ng 1 Lêi nãi ®Çu - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../file_goc_775961.pdf · Khoa Toan tin, §¹i häc Quèc gia Hµ Néi. JavaScript

JavaScript 23

person4= new person("Hoµn", "§ç V¨n", "24", "Male");

document.write ("1. "+person1.last_name+" " + person1.first_name + "<BR>" );

document.write("2. "+person2.last_name +" "+ person2.first_name + "<BR>");

document.write("3. "+ person3.last_name +" "+ person3.first_name + "<BR>");

document.write("4. "+ person4.last_name +" "+ person4.first_name+"<BR>");

</SCRIPT>

</HEAD>

<BODY>

</BODY>

</HTML>

3.1.7. this

Tõ kho¸ this ®îc sö dông ®Ó chØ ®èi tîng hiÖn thêi. §èi tîng ®îc gäi thêng lµ ®èi tîng hiÖn thêi trong ph¬ng thøc hoÆc trong hµm.

Có ph¸p

this [.property]

Cã thÓ xem vÝ dô cña lÖnh new.

Khoa Toan tin, §¹i häc Quèc gia Hµ Néi

H×nh 5.3: KÕt qu¶ cña vÝ dô lÖnh New

Page 24: ch¬ng 1 Lêi nãi ®Çu - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../file_goc_775961.pdf · Khoa Toan tin, §¹i häc Quèc gia Hµ Néi. JavaScript

JavaScript 24

3.1.8. 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, b¹n cã thÓ sö dông c¸c thuéc tÝnh mµ kh«ng ®Ò cËp ®Õn ®èi tîng.

Có ph¸p

with (object)

{

// statement

}

VÝ dô:

VÝ dô sau chØ ra c¸ch sö dông lÖnh with ®Ó thiÕt lËp ®èi tîng ngÇm ®Þnh lµ document vµ cã thÓ sö dông ph¬ng thøc write mµ kh«ng cÇn ®Ò cËp ®Õn ®èi tîng document

<HTML>

<HEAD>

<TITLE>With Example </TITLE>

<SCRIPT LANGUAGE= "JavaScript">

with (document){

write(“This is an exemple of the things that can be done <BR>”);

write(“With the <B>with<B> statment. <P>”);

write(“This can really save some typing”);

}

</SCRIPT>

</HEAD>

<BODY>

</BODY>

</HTML>

Khoa Toan tin, §¹i häc Quèc gia Hµ Néi

Page 25: ch¬ng 1 Lêi nãi ®Çu - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../file_goc_775961.pdf · Khoa Toan tin, §¹i häc Quèc gia Hµ Néi. JavaScript

JavaScript 25

C¸c hµm (Functions)JavaScript còg cho phÐp sö dông c¸c hµm. MÆc dï kh«ng nhÊt thiÕt ph¶i cã, 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Ò. 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. Hµm cã thÓ lµ thuéc tÝnh cña mét ®èi tîng, trong trêng hîp nµy nã ®îc xem nh lµ ph-¬ng thøc cña ®èi tîng ®ã.

LÖnh function ®îc sö dông ®Ó t¹o ra hµm trong JavaScript.

Có ph¸p

function fnName([param1],[param2],...,[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. 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, last_name, age, sex)

{

this.first_name=first_name;

Khoa Toan tin, §¹i häc Quèc gia Hµ Néi

H×nh 5.4: KÕt qu¶ cña vÝ dô lÖnh with

Page 26: ch¬ng 1 Lêi nãi ®Çu - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../file_goc_775961.pdf · Khoa Toan tin, §¹i häc Quèc gia Hµ Néi. JavaScript

JavaScript 26

this.last_name=last_name;

this.age=age;

this.sex=sex;

this.printStats=printStats;

}

function printStats() {

with (document) {

write (" Name :" + this.last_name + " " + this.first_name + "<BR>" );

write("Age :"+this.age+"<BR>");

write("Sex :"+this.sex+"<BR>");

}

}

person1= new person("Thuy", "Dau Bich", "23", "Female");

person2= new person("Chung", "Nguyen Bao", "24", "Male");

person3= new person("Binh", "Nguyen Nhat", "24", "Male");

person4= new person("Hoan", "Do Van", "23", "Male");

person1.printStats();

person2.printStats();

person3.printStats();

person4.printStats();

</SCRIPT>

</HEAD>

<BODY> </BODY>

</HTML>

Khoa Toan tin, §¹i häc Quèc gia Hµ Néi

Page 27: ch¬ng 1 Lêi nãi ®Çu - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../file_goc_775961.pdf · Khoa Toan tin, §¹i häc Quèc gia Hµ Néi. JavaScript

JavaScript 27

C¸c hµm cã s½nJavaScript cã mét sè hµm cã s½n, g¾n trùc tiÕp vµo chÝnh ng«n ng÷ vµ kh«ng n»m trong mét ®èi tîng nµo:

• eval

• parseInt

• parseFloat

3.1.9. eval

Hµm nµy ®îc sö dông ®Ó ®¸nh gi¸ c¸c biÓu thøc hay lÖnh. BiÓu thøc, lÖnh hay c¸c ®èi tîng cña thuéc tÝnh ®Òu cã thÓ ®îc ®¸nh gi¸. §Æc biÖt hÕt søc h÷u Ých khi ®¸nh gi¸ c¸c biÓu thøc do ngêi dïng ®a vµo (ngîc l¹i cã thÓ ®¸nh gi¸ trùc tiÕp).

Có ph¸p:

returnval=eval (bÊt kú biÓu thøc hay lÖnh hîp lÖ trong Java)

VÝ dô:

<HTML>

<HEAD>

Khoa Toan tin, §¹i häc Quèc gia Hµ Néi

1.1.1.1.1. H×nh 8: VÝ dô vÒ hµm

H×nh 5.5: KÕt qu¶ viÖc sö dông hµm

Page 28: ch¬ng 1 Lêi nãi ®Çu - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../file_goc_775961.pdf · Khoa Toan tin, §¹i häc Quèc gia Hµ Néi. JavaScript

JavaScript 28

<TITLE>Eval Example </TITLE>

<SCRIPT LANGUAGE= "JavaScript">

var string=”10+ Math.sqrt(64)”;

document.write(string+ “=”+ eval(string));

</SCRIPT>

</HEAD>

<BODY>

</BODY>

</HTML>

3.1.10. 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). 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 thµnh sè tríc khi tÝnh to¸n. Trong trêng hîp d÷ liÖu vµo kh«ng hîp lÖ, 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è. Ngoµi ra hµm nµy cßn c¾t dÊu phÈy ®éng.

Có ph¸p

parseInt (string, [, radix])

VÝ dô:

<HTML>

<HEAD>

<TITLE> perseInt Exemple </TITLE>

Khoa Toan tin, §¹i häc Quèc gia Hµ Néi

H×nh 5.6 VÝ dô hµm Eval

Page 29: ch¬ng 1 Lêi nãi ®Çu - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../file_goc_775961.pdf · Khoa Toan tin, §¹i häc Quèc gia Hµ Néi. JavaScript

JavaScript 29

<SCRIPT LANGUAGE= "JavaScript">

document.write("Converting 0xC hex to base-10: " + parseInt(0xC,10) + "<BR>");

document.write("Converting 1100 binary to base-10: " + parseInt(1100,2) + "<BR>");

</SCRIPT>

</HEAD>

<BODY>

</BODY>

</HTML>

H×nh 5.7: VÝ dô parInt

3.1.11. parseFloat

Hµm nµy gièng hµm parseInt nhng nã chuyÓn chuçi thµnh sè biÓu diÔn díi d¹ng dÊu phÈy ®éng.

Có ph¸p

parseFloat (string)

VÝ dô:

VÝ dô sau minh ho¹ c¸ch thøc xö lý cña parseFloat víi c¸c kiÓu chuçi kh¸c nhau. H×nh 5.8 minh häa kÕt qu¶

<HTML> <HEAD>

<TITLE> perseFload Exemple </TITLE>

<SCRIPT LANGUAGE= "JavaScript">

Khoa Toan tin, §¹i häc Quèc gia Hµ Néi

Page 30: ch¬ng 1 Lêi nãi ®Çu - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../file_goc_775961.pdf · Khoa Toan tin, §¹i häc Quèc gia Hµ Néi. JavaScript

JavaScript 30

document.write("This script will show how diffrent strings are ");

document.write("Converted using parseFloat<BR>");

document.write("137= " + parseFloat("137") + "<BR>");

document.write("137abc= " + parseFloat("137abc") + "<BR>");

document.write("abc137= " + parseFloat("abc137") + "<BR>");

document.write("1abc37= " + parseFloat("1abc37") + "<BR>");

</SCRIPT>

</HEAD>

<BODY> </BODY>

</HTML>

M¶ng (Array)MÆc dï JavaScript kh«ng hç trî cÊu tróc d÷ liÖu m¶ng nhng Netscape t¹o ra ph¬ng thøc cho phÐp b¹n tù t¹o ra c¸c hµm khëi t¹o m¶ng nh sau:function InitArray(NumElements){

this.length = numElements;for (var x=1; x<=numElements; x++){

this[x]=0}return this;

}

Nã t¹o ra mét m¶ng víi kÝch thíc x¸c ®Þnh tríc vµ ®iÒn c¸c gi¸ trÞ 0. Chó ý r»ng thµnh phÇn ®Çu tiªn trong m¶ng lµ ®é dµi m¶ng vµ kh«ng ®îc sö dông.

§Ó t¹o ra mét m¶ng, khai b¸o nh sau:

Khoa Toan tin, §¹i häc Quèc gia Hµ Néi

H×nh 5.8 : KÕt qu¶ cña vÝ dô parseFloat

Page 31: ch¬ng 1 Lêi nãi ®Çu - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../file_goc_775961.pdf · Khoa Toan tin, §¹i häc Quèc gia Hµ Néi. JavaScript

JavaScript 31

myArray = new InitArray (10)

Nã t¹o ra c¸c thµnh phÇn tõ myArray[1] ®Õn myArray[10] víi gi¸ trÞ lµ 0. Gi¸ trÞ c¸c thµnh phÇn trong m¶ng cã thÓ ®îc thay ®æi nh sau:

myArray[1] = "NghÖ An"

myArray[2] = "Lµo"

Sau ®©y lµ vÝ dô ®Çy ®ñ:<HTML> <HEAD><TITLE> Array Exemple </TITLE><SCRIPT LANGUAGE= "JavaScript">function InitArray(numElements) {

this.length = numElements;for (var x=1; x<=numElements; x++){

this[x]=0}return this;

}myArray = new InitArray(10);myArray[1] = "NghÖ An";myArray[2] = "Hµ Néi";document.write(myArray[1] + "<BR>");document.write(myArray[2] + "<BR>");</SCRIPT></HEAD><BODY> </BODY></HTML>

Khoa Toan tin, §¹i häc Quèc gia Hµ Néi

Page 32: ch¬ng 1 Lêi nãi ®Çu - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../file_goc_775961.pdf · Khoa Toan tin, §¹i häc Quèc gia Hµ Néi. JavaScript

JavaScript 32

H×nh 5.9: VÝ dô m¶ng

Sù kiÖnJavaScript lµ ng«n ng÷ ®Þnh híng sù kiÖn, 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. Mét sù kiÖn cã thÓ g©y ra viÖc thùc hiÖn mét ®o¹n m· lÖnh (gäi lµ c¸c ch¬ng tri×nh xö lý sù kiÖn) gióp cho ch¬ng tr×nh cã thÓ ph¶n øng mét c¸ch thÝch hîp.

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. 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:

<tagName eventHandler = "JavaScript Code or Function">

VÝ dô sau gäi hµm CheckAge() mçi khi gi¸ trÞ cña trêng v¨n b¶n thay ®æi:

<INPUT TYPE=TEXT NAME="AGE" onChange="CheckAge()">

§o¹n m· cña ch¬ng tr×nh xö lý sù kiÖn kh«ng lµ mét hµm; nã lµ c¸c lÖnh cña JavaScript c¸ch nhau b»ng dÊu chÊm phÈy. Tuy nhiªn cho môc ®Ých viÕt thµnh c¸c module nªn viÕt díi d¹ng c¸c hµm.

Mét sè ch¬ng tr×nh xö lý sù kiÖn trong JavaScript:

onBlur X¶y ra khi input focus bÞ xo¸ tõ thµnh phÇn form

onClick X¶y ra khi ngêi dïng kÝch vµo c¸c thµnh phÇn hay liªn kÕt cña form.

onChange X¶y ra khi gi¸ trÞ cña thµnh phÇn ®îc chän thay ®æi

onFocus X¶y ra khi thµnh phÇn cña form ®îc focus(lµm næi lªn).

onLoad X¶y ra trang Web ®îc t¶i.

onMouseOver X¶y ra khi di chuyÓn chuét qua kÕt nèi hay anchor.

onSelect X¶y ra khi ngêi sö dông lùa chän mét trêng nhËp d÷ liÖu trªn form.

onSubmit X¶y ra khi ngêi dïng ®a ra mét form.

onUnLoad X¶y ra khi ngêi dïng ®ãng mét trang

Sau ®©y lµ b¶ng c¸c ch¬ng tr×nh xö lý sù kiÖn cã s½n cña mét sè ®èi tîng. C¸c ®èi tîng nµy sÏ ®îc tr×nh bµy kü h¬n trong phÇn sau.

§èi tîng Ch¬ng tr×nh xö lý sù kiÖn cã s½n

Selection list onBlur, onChange, onFocus

Text onBlur, onChange, onFocus, onSelect

Khoa Toan tin, §¹i häc Quèc gia Hµ Néi

Page 33: ch¬ng 1 Lêi nãi ®Çu - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../file_goc_775961.pdf · Khoa Toan tin, §¹i häc Quèc gia Hµ Néi. JavaScript

JavaScript 33

Textarea onBlur, onChange, onFocus, onSelect

Button onClick

Checkbox onClick

Radio button onClick

Hypertext link onClick, onMouseOver, onMouseOut

Clickable Imagemap area onMouseOver, onMouseOut

Reset button onClick

Submit button onClick

Document onLoad, onUnload, onError

Window onLoad, onUnload, onBlur, onFocus

Framesets onBlur, onFocus

Form onSubmit, onReset

Image onLoad, onError, onAbort

VÝ dô sau lµ mét ®o¹n m· script ®¬n gi¶n cña ch¬ng tr×nh xö lý sù kiÖn thÈm ®Þnh gi¸ trÞ ®a vµo trong trêng text. Tuæi cña ngêi sö dông ®îc nhËp vµo trong trêng nµy vµ ch¬ng tr×nh xö lý sù kiÖn sÏ thÈm ®Þnh tÝnh hîp lÖ cña d÷ liÖu ®a vµo. NÕu kh«ng hîp lÖ sÏ xuÊt hiÖn mét th«ng b¸o yªu cÇu nhËp l¹i. Ch¬ng tr×nh xö lý sù kiÖn ®îc gäi mçi khi trêng AGE bÞ thay ®æi vµ focus chuyÓn sang trêng kh¸c. H×nh 5.10 minh ho¹ kÕt qu¶ cña vÝ dô nµy

<HTML>

<HEAD>

<TITLE> An Event Handler Exemple </TITLE>

<SCRIPT LANGUAGE= "JavaScript">

function CheckAge(form) {

if ( (form.AGE.value<0)||(form.AGE.value>120) )

{

alert("Tuæi nhËp vµo kh«ng hîp lÖ! Mêi b¹n nhËp l¹i");

form.AGE.value=0;

}

}

</SCRIPT>

</HEAD>

Khoa Toan tin, §¹i häc Quèc gia Hµ Néi

Page 34: ch¬ng 1 Lêi nãi ®Çu - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../file_goc_775961.pdf · Khoa Toan tin, §¹i häc Quèc gia Hµ Néi. JavaScript

JavaScript 34

<BODY>

<FORM NAME="PHIEU_DIEU_TRA">

NhËp vµo tªn cña b¹n:<BR>

Tªn <INPUT TYPE=TEXT NAME="TEN" MAXLENGTH=10 SIZE=10><BR>

§Öm <INPUT TYPE=TEXT NAME="DEM" MAXLENGTH=15 SIZE=10><BR>

Hä <INPUT TYPE=TEXT NAME="HO" MAXLENGTH=10 SIZE=10><BR>

Age <INPUT TYPE=TEXT NAME="AGE" MAXLENGTH=3 SIZE=2 onChange="CheckAge(PHIEU_DIEU_TRA)"><BR>

<P>

B¹n thÝch mïa nµo nhÊt:<BR>

Mïa xu©n<INPUT TYPE=RADIO NAME="MUA" VALUE="Mua xuan">

Mïa h¹<INPUT TYPE=RADIO NAME="MUA" VALUE="Mua ha">

Mïa thu<INPUT TYPE=RADIO NAME="MUA" VALUE="Mua thu">

Mïa ®«ng<INPUT TYPE=RADIO NAME="MUA" VALUE="Mua dong">

<P>

H·y chän nh÷ng ho¹t ®éng ngoµi trêi mµ b¹n yªu thÝch:<BR>

§i bé<INPUT TYPE=CHECKBOX NAME="HOAT_DONG" VALUE="Di bo">

Trît tuyÕt<INPUT TYPE=CHECKBOX NAME="HOAT_DONG" VALUE="Truot tuyet">

ThÓ thao díi níc<INPUT TYPE=CHECKBOX NAME="HOAT_DONG" VALUE="Duoi nuoc">

§¹p xe<INPUT TYPE=CHECKBOX NAME="HOAT_DONG" VALUE="Dap xe">

<P>

<INPUT TYPE=SUBMIT>

<INPUT TYPE=RESET>

</FORM>

</BODY>

</HTML>

Khoa Toan tin, §¹i häc Quèc gia Hµ Néi

Page 35: ch¬ng 1 Lêi nãi ®Çu - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../file_goc_775961.pdf · Khoa Toan tin, §¹i häc Quèc gia Hµ Néi. JavaScript

JavaScript 35

H×nh 5.10: Minh ho¹ cho vÝ dô Event Handler

Bµi tËp

3.1.12. C©u hái

1. ViÕt mét ®o¹n lÖnh JavaScript sö dông c¸ch thøc confirm() vµ c©u lÖnh if...then ®Ó thùc hiÖn:

Hái ngêi sö dông cã muèn nhËn ®îc mét lêi chµo kh«ng

NÕu cã th× hiÖn ¶nh wellcome.jpg vµ mét lêi chµo.

NÕu kh«ng th× viÕt ra mét lêi th«ng b¸o

2. ViÕt mét ®o¹n lÖnh JavaScript ®Ó thùc hiÖn:

• Hái ngêi sö dông: "10+10 b»ng bao nhiªu?"

• NÕu ®óng th× hái tiÕp: Cã muèn tr¶ lêi c©u thø hai kh«ng?"

• NÕu muèn th× hái: "10*10 b»ng bao nhiªu?"

• §¸nh gi¸ kÕt qu¶ b»ng biÓu thøc logic sau ®ã viÕt ra mµn h×nh:§óng: "CORRECT"; Sai: "INCORRECT"

Gîi ý: Sö dông biÕn toµn côc lu kÕt qu¶ ®óng ®Ó so s¸nh víi kÕt qña ®a vµo.

3. C©u lÖnh nµo trong c¸c c©u sau ®©y sö dông sai thÎ sù kiÖn

a. <BODY onClick="doSomething();">

b. <INPUT TYPE=text onFocus="doSomething();">

Khoa Toan tin, §¹i häc Quèc gia Hµ Néi

Page 36: ch¬ng 1 Lêi nãi ®Çu - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../file_goc_775961.pdf · Khoa Toan tin, §¹i häc Quèc gia Hµ Néi. JavaScript

JavaScript 36

c. <INPUT TYPE=textarea onLoad="doSomething();">

d. <BODY onUnload="doSomething();">

e. <FORM onLoad="doSomething();">

f. <FORM onSubmit="doSomething();">

4. §iÒu g× x¶y ra khi thùc hiÖn script sau:

<HTML>

<HEAD>

<TITLE>Exercise 5.4</TITLE>

<SCRIPT LANGUAGE="JavaScript">

<!-- HIDE FROM OTHER BROWSERS

var name = "";

function welcome() {

name = prompt("Welcome to my page! What's Your Name?","name");

}

function farewell() {

alert("Goodbye " + name + ". Thanks for visiting my page.");

}

// STOP HIDING FROM OTHER BROWSERS -->

</SCRIPT>

</HEAD>

<BODY onLoad="welcome();" onUnload="farewell();";>

This is my page!

</BODY>

</HTML>

5. Sö dông vßng lÆp while ®Ó m« pháng c¸c vßng lÆp for sau:

a.

for (j = 4; j > 0; j --) {

document.writeln(j + "<BR>");

}

b.

for (k = 1; k <= 99; k = k*2) {

k = k/1.5;

}

c.

for (num = 0; num <= 10; num ++) {

if (num == 8)

break;

}

Khoa Toan tin, §¹i häc Quèc gia Hµ Néi

Page 37: ch¬ng 1 Lêi nãi ®Çu - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../file_goc_775961.pdf · Khoa Toan tin, §¹i häc Quèc gia Hµ Néi. JavaScript

JavaScript 37

3.1.13. Tr¶ lêi

1. Sö dông c¸ch thøc confirm() vµ cÊu tróc if...then:

<HTML>

<HEAD>

<TITLE>Execise 5.1</TITLE>

<HEAD>

<BODY>

<P>

<SCRIPT LANGUAGE="JavaScript">

var conf=confirm("Click OK to see a wellcome message!")

if (conf){

document.write("<IMG SRC='wellcome.jpg'>");

document.write("<BR>Wellcome you come to CSE's class");

}

else

document.write("What a pity! You have just click Cancel button");

</SCRIPT>

</P>

</BODY>

</HTML>

2. Thùc hiÖn hái ngêi sö dông:

<HTML>

<HEAD>

<TITLE>Exercise 3.3</TITLE>

<SCRIPT LANGUAGE="JavaScript">

<!-- HIDE FROM OTHER BROWSERS

// DEFINE VARIABLES FOR REST OF SCRIPT

var question="What is 10+10?";

var answer=20;

var correct='CORRECT';

var incorrect='INCORRECT';

// ASK THE QUESTION

var response = prompt(question,"0");

// chECK THE ANSWER THE FIRST TIME

if (response != answer) {

// THE ANSWER WAS WRONG: OFFER A SECOND chAncE

if (confirm("Wrong! Press OK for a second chance."))

response = prompt(question,"0");

Khoa Toan tin, §¹i häc Quèc gia Hµ Néi

Page 38: ch¬ng 1 Lêi nãi ®Çu - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../file_goc_775961.pdf · Khoa Toan tin, §¹i häc Quèc gia Hµ Néi. JavaScript

JavaScript 38

} else {

// THE ANSWER WAS RIGHT: OFFER A SECOND QUESTION

if (confirm("Correct! Press OK for a second question.")) {

question = "What is 10*10?";

answer = 100;

response = prompt (question,"0");

}

}

// chECK THE ANSWER

var output = (response == answer) ? correct : incorrect;

// STOP HIDING FROM OTHER BROWSERS -->

</SCRIPT>

</HEAD>

<BODY>

<SCRIPT LANGUAGE="JavaScript">

<!-- HIDE FROM OTHER BROWSERS

// OUTPUT RESULT

document.write(output);

// STOP HIDING FROM OTHER BROWSERS -->

</SCRIPT>

</BODY>

</HTML>

3. C¸c c©u sai: a, c, e. C¸c c©u ®óng: b, d, f

4. Khi ch¬ng tr×nh ®îc ch¹y (load), hµm wellcome sÏ thùc hiÖn hái tªn ngêi sö dông, lu tªn ®ã vµo biÕn toµn côc name. Khi ngêi sö dông sang mét ®Þa chØ URL kh¸c, hµm farewell() sÏ thùc hiÖn göi mét lêi c¶m ¬n tíi ngêi sö dông.

5. Sö dông vßng lÆp while nh sau:

a.

j = 5;

while (--j > 0) {

document.writeln(j + "<BR>");

}

b.

k = 1;

while (k <= 99) {

k = k * 2 / 1.5;

}

c.

num = 0;

Khoa Toan tin, §¹i häc Quèc gia Hµ Néi

Page 39: ch¬ng 1 Lêi nãi ®Çu - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../file_goc_775961.pdf · Khoa Toan tin, §¹i häc Quèc gia Hµ Néi. JavaScript

JavaScript 39

while (num <= 10) {

if (num++ == 8)

break;

}

Khoa Toan tin, §¹i häc Quèc gia Hµ Néi

Page 40: ch¬ng 1 Lêi nãi ®Çu - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../file_goc_775961.pdf · Khoa Toan tin, §¹i häc Quèc gia Hµ Néi. JavaScript

JavaScript 40

4. C¸c ®èi tîng trong JavaScriptNh ®· nãi JavaScript lµ ng«n ng÷ lËp tr×nh dùa trªn ®èi tîng, nhng 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Õ. PhÇn nµy nãi vÒ c¸c ®èi tîng trong JavaScript vµ h×nh 6.1 chØ ra s¬ ®å ph©n cÊp c¸c ®èi tîng.

Trong s¬ ®å ph©n cÊp c¸c ®èi tîng cña JavaScript, c¸c ®èi tîng con thùc sù lµ c¸c thuéc tÝnh cña c¸c ®èi tîng bè mÑ. Trong vÝ dô vÒ ch¬ng tr×nh xö lý sù kiÖn tríc ®©y form tªn PHIEU_DIEU_TRAlµ thuéc tÝnh cña ®èi tîng document vµ trêng text AGE lµ thuéc tÝnh cña form PHIEU_DIEU_TRA. §Ó tham chiÕu ®Õn gi¸ trÞ cña AGE, b¹n ph¶i sö dông:

document.PHIEU_DIEU_TRA.AGE.value

C¸c ®èi tîng cã thuéc tÝnh (properties), ph¬ng thøc (methods), vµ c¸c ch¬ng tr×nh xö lý sù kiÖn (event handlers) g¾n víi chóng. 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. Bªn c¹nh ®ã b¹n thÊy ph¬ng thøc document.write ®îc sö dông trong nhiÒu vÝ dô ®Ó ®a v¨n b¶n kÕt qu¶ ra document.

§èi tîng còng cã thÓ cã c¸c ch¬ng tr×nh xö lý sù kiÖn. VÝ dô ®èi tîng link cã hai ch¬ng tr×nh xö lý sù kiÖn lµ onClick vµ onMouseOver. onClick ®îc gäi khi cã ®èi tîng link ®îc kÝch, onMouseOver ®îc gäi khi con trá chuét di chuyÓn qua link.

Khi b¹n t¶i mét document xuèng Navigator, nã sÏ t¹o ra mét sè ®èi tîng 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. 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 ®ã.

Khoa Toan tin, §¹i häc Quèc gia Hµ Néi

Page 41: ch¬ng 1 Lêi nãi ®Çu - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../file_goc_775961.pdf · Khoa Toan tin, §¹i häc Quèc gia Hµ Néi. JavaScript

JavaScript 41

S¬ ®å sau sÏ minh ho¹ sù ph©n cÊp cña c¸c ®èi tîng nµy

Trong s¬ ®å ph©n cÊp nµy, c¸c ®èi tîng con chÝnh lµ c¸c thuéc tÝnh cña mét ®èi tîng cha. VÝ dô nh mét form tªn lµ form1 chÝnh lµ mét ®èi tîng con cña ®èi tîng document vµ ®-îc gäi tíi lµ document.form1

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, dïng cho MIME type ®îc hç trî bëi client vµ plug-in ®îc cµi ®Æt trªn client.

• window: lµ ®èi tîng ë møc cao nhÊt, cã c¸c thuéc tÝnh thùc hiÖn ¸p dông vµo toµn bé cöa sæ.

• document: chøa c¸c thuéc tÝnh dùa trªn néi dung cña document nh tªn, mµu nÒn, c¸c kÕt nèi vµ c¸c forms.

• 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 ®ã.

Khoa Toan tin, §¹i häc Quèc gia Hµ Néi

Window Texturea

Text

FileUpload

Password

Hidden

Submit

Reset

Radio

Checkbox

Button

Select

Plugin

Mime TypeFrame

document

Location

History

Layer

Link

Image

Area

Anchor

Applet

Plugin

Form

navigator

Option

H×nh 6.1: S¬ ®å 1 - Ph©n cÊp ®èi t­îng Navigator

Page 42: ch¬ng 1 Lêi nãi ®Çu - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../file_goc_775961.pdf · Khoa Toan tin, §¹i häc Quèc gia Hµ Néi. JavaScript

JavaScript 42

Sau ®©y sÏ m« t¶ c¸c thuéc tÝnh, ph¬ng thøc còng nh c¸c ch¬ng tr×nh xö lý sù kiÖn cho tõng ®èi tîng trong JavaScript.

§è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. §èi t-îng nµy kh«ng cã ph¬ng thøc hay ch¬ng tr×nh xö lý sù kiÖn.

C¸c thuéc tÝnh

appCodeName X¸c ®Þnh tªn m· néi t¹i cña tr×nh duyÖt (Atlas).

AppName X¸c ®Þnh tªn tr×nh duyÖt.

AppVersion X¸c ®Þnh th«ng tin vÒ phiªn b¶n cña ®èi tîng navigator.

userAgent

X¸c ®Þnh header cña user - agent.

VÝ dô

VÝ dô sau sÏ hiÓn thÞ c¸c thuéc tÝnh cña ®èi tîng navigator<HTML><HEAD><TITLE> Navigator Object Exemple </TITLE><SCRIPT LANGUAGE= "JavaScript">

document.write("appCodeName = "+navigator.appCodeName + "<BR>");

document.write("appName = "+navigator.appName + "<BR>");document.write("appVersion = "+navigator.appVersion +

"<BR>");document.write("userAgent = "+navigator.userAgent + "<BR>");

</SCRIPT></HEAD><BODY></BODY></HTML>

Khoa Toan tin, §¹i häc Quèc gia Hµ Néi

Page 43: ch¬ng 1 Lêi nãi ®Çu - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../file_goc_775961.pdf · Khoa Toan tin, §¹i häc Quèc gia Hµ Néi. JavaScript

JavaScript 43

§èi tîng window§èi tîng window nh ®· nãi ë trªn lµ ®èi tîng ë møc cao nhÊt. C¸c ®èi tîng document, frame, vÞ trÝ ®Òu lµ thuéc tÝnh cña ®èi tîng window.

4.1.1. C¸c thuéc tÝnh

• defaultStatus - Th«ng b¸o ngÇm ®Þnh hiÓn thÞ lªn trªn thanh tr¹ng th¸i cña cöa sæ

• Frames - M¶ng x¸c ®Þnh tÊt c¶ c¸c frame trong cöa sæ.

• Length - Sè lîng c¸c frame trong cöa sæ cha mÑ.

• Name - Tªn cña cöa sæ hiÖn thêi.

• Parent - §èi tîng cöa sæ cha mÑ

• Self - Cöa sæ hiÖn thêi.

• Status - §î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æ. §ù¬c sö dông ®Ó lÊy hay ®Æt l¹i th«ng b¸o tr¹ng th¸i vµ ghi ®Ì lªn defaultStatus.

• Top - Cöa sæ ë trªn cïng.

• Window - Cöa sæ hiÖn thêi.

Khoa Toan tin, §¹i häc Quèc gia Hµ Néi

H×nh 6.2: Minh ho¹ cho ®èi tîng Navigator

Page 44: ch¬ng 1 Lêi nãi ®Çu - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../file_goc_775961.pdf · Khoa Toan tin, §¹i häc Quèc gia Hµ Néi. JavaScript

JavaScript 44

4.1.2. C¸c ph¬ng thøc

• alert ("message") -HiÓn thÞ hép héi tho¹i víi chuçi "message" vµ nót OK.

• clearTimeout(timeoutID) -Xãa timeout do SetTimeout ®Æt. SetTimeout tr¶ l¹i timeoutID

• windowReference.close -§ãng cöa sæ windowReference.

• confirm("message") -HiÓn thÞ hép héi tho¹i víi chuçi "message", nót OK vµ nót Cancel. Tr¶ l¹i gi¸ trÞ True cho OK vµ False cho Cancel.

• [windowVar = ][window]. open("URL", "windowName", [ "windowFeatures" ] ) - Më cöa sæ míi.

• prompt ("message" [,"defaultInput"]) - Më mét hép héi tho¹i ®Ó nhËn d÷ liÖu vµo trêng text.

• TimeoutID = setTimeout(expression,msec) - §¸nh gi¸ biÓu thøc expresion sau thêi gian msec.

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).

Trong vÝ dô t¹o ra mét tíi cöa sæ thø hai, nh nót thø nhÊt ®Ó më mét cöa sæ rçng, sau ®ã mét liªn kÕt sÏ t¶i file doc2.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, vÝ dô nµy la vµo file window.html:<HTML><HEAD><TITLE>Frame Example </TITLE></HEAD><BODY> <FORM>

<INPUT TYPE="button" VALUE="Open Second Window" onClick="msgWindow=window.open('','window2','resizable=no,width=200,height=200')">

<P><A HREF="doc2.html" TARGET="window2"> Load a file into window2 </A></P><INPUT TYPE="button" VALUE="Close Second Window"

onClick="msgWindow.close()"></FORM></BODY></HTML>

Khoa Toan tin, §¹i häc Quèc gia Hµ Néi

Page 45: ch¬ng 1 Lêi nãi ®Çu - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../file_goc_775961.pdf · Khoa Toan tin, §¹i häc Quèc gia Hµ Néi. JavaScript

JavaScript 45

H×nh 6.3: Minh ho¹ cho ®èi tîng cöa sæ

4.1.3. C¸c ch¬ng tr×nh xö lý sù kiÖn

• onLoad - XuÊt hiÖn khi cöa sæ kÕt thóc viÖc t¶i.

• onUnLoad - XuÊt hiÖn khi cöa sæ ®îc lo¹i bá.

§èi tîng locationC¸c thuéc tÝnh cña ®èi tîng location duy tr× c¸c th«ng tin vÒ URL cña document hiÖn thêi. §èi tîng nµy hoµn toµn kh«ng cã c¸c ph¬ng thøc vµ ch¬ng tr×nh xö lý sù kiÖn ®i kÌm. VÝ dô:

http:// www.abc.com/ chap1/page2.html#topic3

C¸c thuéc tÝnh

• hash - Tªn anchor cña vÞ trÝ hiÖn thêi (vÝ dô topic3).

• Host - PhÇn hostname:port cña URL (vÝ dô www.abc.com ). Chó ý r»ng ®©y thêng lµ cæng ngÇm ®Þnh vµ Ýt khi ®îc chØ ra.

• Hostname - Tªn cña host vµ domain (vÝ dô www.abc.com ).

• href - Toµn bé URL cho document hiÖn t¹i.

• Pathname - PhÇn ®êng dÉn cña URL (vÝ dô /chap1/page2.html).

• Port - Cæng truyÒn th«ng ®îc sö dông cho m¸y tÝnh host, thêng lµ cæng ngÇm ®Þnh.

• Protocol - Giao thøc ®îc sö dông (cïng víi dÊu hai chÊm) (vÝ dô http:).

• Search - C©u truy vÊn t×m kiÕm cã thÓ ë cuèi URL cho c¸c script CGI.

Khoa Toan tin, §¹i häc Quèc gia Hµ Néi

Page 46: ch¬ng 1 Lêi nãi ®Çu - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../file_goc_775961.pdf · Khoa Toan tin, §¹i häc Quèc gia Hµ Néi. JavaScript

JavaScript 46

§èi tîng frameMét cöa sè cã thÓ cã mét vµi frame. 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. frame kh«ng cã c¸c ch¬ng tr×nh xö lý sù kiÖn. Sù kiÖn onLoad vµ onUnLoad lµ cña ®èi tîng window.

4.1.4. C¸c thuéc tÝnh

• frames - M¶ng tÊt c¶ c¸c frame trong cöa sæ.

• Name - Thuéc tÝnh NAME cña thÎ <FRAME>

• Length - Sè lîng c¸c frame con trong mét frame.

• Parent - Cöa sæ hay frame chøa nhãm frame hiÖn thêi.

• self - frame hiÖn thêi.

• Window - frame hiÖn thêi.

4.1.5. C¸c ph¬ng thøc

• clearTimeout (timeoutID) - Xo¸ timeout do setTimeout lËp. SetTimeout tr¶ l¹i timeoutID.

• TimeoutID = setTimeout (expression,msec) - §¸nh gi¸ expression sau khi hÕt thêi gian msec.

4.1.6. Sö dông Frame

4.1.6.1. a) T¹o mét frame (create)

§Ó t¹o mét frame, ta sö dông thÎ FRAMESET. Môc ®Ých cña thÎ nµy lµ ®Þnh nghÜa mét tËp c¸c frame trong mét trang.

VÝ dô1: t¹o frame ( h×nh 17)<HTML><HEAD><TITLE>Frame Example </TITLE><FRAMESET ROWS="90%,10%">

<FRAMESET COLS="30%,70%"> <FRAME SRC=CATEGORY.HTM NAME="ListFrame"> <FRAME SRC=TITLES.HTM NAME="contentFrame">

</FRAMESET ><FRAME SRC=NAVIGATOR.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.

Khoa Toan tin, §¹i häc Quèc gia Hµ Néi

Top

listFrame (category.html)

contentFrame (titles.html)

navigatorFrame (navigator.html)

Page 47: ch¬ng 1 Lêi nãi ®Çu - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../file_goc_775961.pdf · Khoa Toan tin, §¹i häc Quèc gia Hµ Néi. JavaScript

JavaScript 47

B¹n 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.frames[2]

H×nh 6.4: KÕt qu¶ viÖc t¹o frame trong

VÝ dô 2: Còng gièng nh mét sù lùa chän, b¹n cã thÓ t¹o ra mét cöa sæ gièng nh vÝ dô tríc nhng trong mçi ®Ønh cña hai frame l¹i cã mét cöa sæ cha riªng tõ navigateFrame. Møc frameset cao nhÊt cã thÓ ®îc ®Þnh nghÜa nh sau:<HTML><HEAD><TITLE>Frame Example </TITLE><FRAMESET ROWS="90%,10%"><FRAME SRC=muske13.HTML NAME="upperFrame"><FRAME SRC=NAVIGATOR.HTM NAME="navigateFrame"></FRAMESET ></HEAD><BODY> </BODY></HTML>

Trong file muske13.html l¹i tiÕp tôc ®Æt mét frameset:<HTML><HEAD><TITLE>Frame Example </TITLE>

Khoa Toan tin, §¹i häc Quèc gia Hµ Néi

Page 48: ch¬ng 1 Lêi nãi ®Çu - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../file_goc_775961.pdf · Khoa Toan tin, §¹i häc Quèc gia Hµ Néi. JavaScript

JavaScript 48

<FRAMESET COLS="30%,70%"><FRAME SRC=CATEGORY.HTM NAME="ListFrame"><FRAME SRC=TITLES.HTM NAME="contentFrame"></FRAMESET ></HEAD><BODY> </BODY></HTML>

Khi ®ã kÕt qu¶ hiÓn thÞ cña vÝ dô 2 gièng vÝ dô 1 nhng sù ph©n cÊp cña c¸c frames l¹i kh¸c h¼n:

B¹n cã thÓ gäi tíi c¸c frame trªn b»ng c¸ch sö dông thuéc tÝnh m¶ng frames nh sau:

upperFrame chÝnh lµ top.frames[0]

navigatorFrame chÝnh lµ top.frames[1]

listFrame chÝnh lµ upperFrame.frames[0]

hoÆc top.frames[0].frames[0]

contentFrame chÝnh lµ upperFrame.frames[1]

hoÆc top.frames[0].frames[1]

4.1.6.2. b) CËp nhËt mét frame (update)

B¹n 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.

Trong vÝ dô trªn, nÕu b¹n thªm mét dßng sau vµo navigatorFrame:

<INPUT TYPE="button" VALUE="Titles only" onClick="top.frames[0].location='artist.html'">

th× khi nót “Titles only” ®îc nhÊn, file artist.html sÏ ®îc t¶i vµo upperFrame, vµ hai frame listFrame, contentFrame sÏ bÞ ®ãng l¹i nh chóng cha bao giê tån t¹i.

§è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 thøc ®Ó ®a th«ng tin ra mµn h×nh. §èi tîng document ®îc t¹o ra b»ng cÆp thÎ <BODY> vµ </BODY>. Mét sè c¸c thuéc tÝnh g¾n víi thÎ <BODY>.

Khoa Toan tin, §¹i häc Quèc gia Hµ Néi

top

upperFrame (muske13.html)

navigatorFrame (navigator.html)

listFrame (category.html)

contentFrame (titles.html)

Page 49: ch¬ng 1 Lêi nãi ®Çu - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../file_goc_775961.pdf · Khoa Toan tin, §¹i häc Quèc gia Hµ Néi. JavaScript

JavaScript 49

C¸c ®èi tîng anchor, forms, history, links lµ thuéc tÝnh cña ®èi tîng document. Kh«ng cã c¸c ch¬ng tr×nh xö lý sù kiÖn cho c¸c frame. Sù kiÖn onLoad vµ onUnLoad lµ cho ®èi tîng window.

4.1.7. C¸c thuéc tÝnh

• alinkColor - Gièng nh thuéc tÝnh ALINK.

• anchor - M¶ng tÊt c¶ c¸c anchor trong document.

• bgColor - Gièng thuéc tÝnh BGCOLOR.

• cookie - Sö dông ®Ó x¸c ®Þnh cookie.

• fgColor - Gièng thuéc tÝnh TEXT.

• forms - M¶ng tÊt c¶ c¸c form trong document.

• lastModified - Ngµy cuèi cïng v¨n b¶n ®îc söa.

• linkColor - Gièng thuéc tÝnh LINK.

• links - M¶ng tÊt c¶ c¸c link trong document.

• location - URL ®Çy ®ñ cña v¨n b¶n.

• referrer - URL cña v¨n b¶n gäi nã.

• title - Néi dung cña thÎ <TITLE>.

• vlinkColor - Gièng thuéc tÝnh VLINK.

4.1.8. C¸c ph¬ng thøc

• document.clear - Xo¸ document hiÖn thêi.

• document.close - §ãng dßng d÷ liÖu vµo vµ ®a toµn bé d÷ liÖu trong bé ®Öm ra mµn h×nh.

• document.open (["mineType"]) - Më mét stream ®Ó thu thËp d÷ liÖu vµo cña c¸c phwong thøc write vµ writeln.

• document.write(expression1 [,expression2]...[,expressionN]) - ViÕt biÓu thøc HTML lªn v¨n b¶n tr«ng mét cöa sæ x¸c ®Þnh.

• document.writeln (expression1 [,expression2] ... [,expressionN] ) - Gièng ph¬ng thøc trªn nhng khi hÕt mçi biÓu thøc l¹i xuèng dßng.

§èi tîng anchorsanchor 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. Nã ®îc x¸c ®Þnh b»ng cÆp thÎ <A> vµ </A>. §èi tîng anchor kh«ng cã thuéc tÝnh, ph¬ng thøc còng nh ch¬ng tr×nh xö lý sù kiÖn. M¶ng anchor tham chiÕu ®Õn mçi anchor cã tªn trong document. Mçi anchor ®îc tham chiÕu b»ng c¸ch:

document.anchors [index]

M¶ng anchor cã mét thuéc tÝnh duy nhÊt lµ length x¸c ®Þnh sè lîng c¸c anchor trong document, nã cã thÓ ®îc x¸c ®Þnh nh sau:

Khoa Toan tin, §¹i häc Quèc gia Hµ Néi

Page 50: ch¬ng 1 Lêi nãi ®Çu - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../file_goc_775961.pdf · Khoa Toan tin, §¹i häc Quèc gia Hµ Néi. JavaScript

JavaScript 50

document.anchors.length.

§èi tîng formsC¸c form ®îc t¹o ra nhê cÆp thÎ <FORM> vµ </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>. Cã mét vµi phÇn tö (elements) lµ thuéc tÝnh cña ®èi tîng forms:

button

checkbox

hidden

password

radio

reset

select

submit

text

textarea

C¸c phÇn tö nµy sÏ ®îc tr×nh bµy sau.

NÕu document chøa mét vµi form, chóng cã thÓ ®îc tham chiÕu qua m¶ng forms. Sè lîng c¸c form cã thÓ ®îc x¸c ®Þnh nh sau:

document.forms.length.

Mçi mét form cã thÓ ®îc tham chiÕu nh sau:

document.forms[index]

4.1.9. C¸c thuéc tÝnh

action thuéc tÝnh ACTION cña thÎ FORM.

elements M¶ng chøa tÊt c¶ c¸c thµnh phÇn trong mét form (nh checkbox, tr-êng text, danh s¸ch lùa chän

encoding X©u chøa kiÓu MIME ®îc sö dông ®Ó m· ho¸ néi dung cña form göi cho server.

length Sè lîng c¸c thµnh phÇn trong mét form.

method Thuéc tÝnh METHOD.

target X©u chøa tªn cña cöa sæ ®Ých khi submit form

4.1.10. C¸c ph¬ng thøc

formName.submit () - XuÊt d÷ liÖu cña mét form tªn formName tíi trang xö lý. Ph¬ng thøc nµy m« pháng mét click vµo nót submit trªn form.

Khoa Toan tin, §¹i häc Quèc gia Hµ Néi

Page 51: ch¬ng 1 Lêi nãi ®Çu - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../file_goc_775961.pdf · Khoa Toan tin, §¹i häc Quèc gia Hµ Néi. JavaScript

JavaScript 51

4.1.11. C¸c ch¬ng tr×nh xö lý sù kiÖn

onSubmit - Ch¬ng tr×nh xö lý sù kiÖn nµy ®îc gäi khi ngêi sö dông chuyÓn d÷ liÖu tõ form ®i.

§èi tîng history§èi tîng nµy ®îc sö dông ®Ó lu gi÷ c¸c th«ng tin vÒ c¸c URL tríc ®îc ngêi sö dông sö dông. Danh s¸ch c¸c URL ®îc lu tr÷ theo thø tù thêi gian. §èi tîng nµy kh«ng cã ch¬ng tr×nh xö lý sù kiÖn.

4.1.12. C¸c thuéc tÝnh

length - Sè lîng c¸c URL trong ®èi tîng.

4.1.13. C¸c ph¬ng thøc

• history.back() - §îc sö dông ®Ó tham chiÕu tíi URL míi ®îc th¨m tríc ®©y.

• history.forward() - §îc sö dông ®Ó tham chiÕu tíi URL kÕ tiÕp trong danh s¸ch. Nã sÏ kh«ng g©y hiÖu øng g× nÕu ®· ®Õn cuèi cña danh s¸ch.

• history.go (delta | "location") - §î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. 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. nÕu sö dông location, URL gÇn nhÊt cã chøa location lµ chuçi con sÏ ®îc tham chiÕu.

§èi tîng links§è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. 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. §èi tîng link còng kh«ng cã ph¬ng thøc nµo.

M¶ng link chøa danh s¸ch tÊt c¶ c¸c liªn kÕt trong document. Cã thÓ x¸c ®Þnh sè lîng c¸c link qua

document.links.length()

Cã thÓ tham chiÕu tíi mét liªn kÕt qña

document.links [index]

§Ó x¸c ®Þnh c¸c thuéc tÝnh cña ®èi tîng link, cã thÓ sö dông URL t¬ng tù:

http://www.abc.com/chap1/page2.html#topic3

4.1.14. C¸c thuéc tÝnh

• hash - Tªn anchor cña vÞ trÝ hiÖn thêi (vÝ dô topic3).

• Host - PhÇn hostname:port cña URL (vÝ dô www.abc.com). Chó ý r»ng ®©y th-êng lµ cæng ngÇm ®Þnh vµ Ýt khi ®îc chØ ra.

Khoa Toan tin, §¹i häc Quèc gia Hµ Néi

Page 52: ch¬ng 1 Lêi nãi ®Çu - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../file_goc_775961.pdf · Khoa Toan tin, §¹i häc Quèc gia Hµ Néi. JavaScript

JavaScript 52

• Hostname - Tªn cña host vµ domain (vÝ dô ww.abc.com).

• href - Toµn bé URL cho document hiÖn t¹i.

• Pathname - PhÇn ®êng dÉn cña URL (vÝ dô /chap1/page2.html).

• port - Cæng truyÒn th«ng ®îc sö dông cho m¸y tÝnh host, thêng lµ cæng ngÇm ®Þnh.

• Protocol - Giao thøc ®îc sö dông (cïng víi dÊu hai chÊm) (vÝ dô http:).

• Search - C©u truy vÊn t×m kiÕm cã thÓ ë cuèi URL cho c¸c script CGI.

• Target - Gièng thuéc tÝnh TARGET cña <LINK>.

4.1.15. C¸c ch¬ng tr×nh xö lý sù kiÖn

• onClick - X¶y ra khi ngêi sö dông nhÊn vµo link.

• onMouseOver - X¶y ra khi con chuét di chuyÓn qua link.

§èi tîng Math§èi tîng Math lµ ®èi tîng néi t¹i trong JavaScript. C¸c thuéc tÝnh cña ®èi tîng nµy chøa nhiÒu h»ng sè to¸n häc, c¸c hµm to¸n häc, lîng gi¸c phæ biÕn. §èi tîng Math kh«ng cã ch¬ng tr×nh xö lý sù kiÖn.

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Ö.

4.1.16. C¸c thuéc tÝnh

• E - H»ng sè Euler, kho¶ng 2,718.

• LN2 - logarit tù nhiªn cña 2, kho¶ng 0,693.

• LN10 - logarit tù nhiªn cña 10, kho¶ng 2,302.

• LOG2E - logarit c¬ sè 2 cña e, kho¶ng 1,442.

• PI - Gi¸ trÞ cña π, kho¶ng 3,14159.

• SQRT1_2 - C¨n bËc 2 cña 0,5, kho¶ng 0,707.

• SQRT2 - C¨n bËc 2 cña 2, kho¶ng 1,414.

4.1.17. C¸c ph¬ng thøc

• Math.abs (number) - Tr¶ l¹i gi¸ trÞ tuyÖt ®èi cña number.

• Math.acos (number) - Tr¶ l¹i gi¸ trÞ arc cosine (theo radian) cña number. Gi¸ trÞ cña number ph¶i n¨mg gi÷a -1 vµ 1.

• Math.asin (number) - Tr¶ l¹i gi¸ trÞ arc sine (theo radian) cña number. Gi¸ trÞ cña number ph¶i n¨mg gi÷a -1 vµ 1.

• Math.atan (number) - Tr¶ l¹i gi¸ trÞ arc tan (theo radian) cña number.

• Math.ceil (number) - Tr¶ l¹i sè nguyªn nhá nhÊt lín h¬n hoÆc b»ng number.

Khoa Toan tin, §¹i häc Quèc gia Hµ Néi

Page 53: ch¬ng 1 Lêi nãi ®Çu - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../file_goc_775961.pdf · Khoa Toan tin, §¹i häc Quèc gia Hµ Néi. JavaScript

JavaScript 53

• Math.cos (number) - Tr¶ l¹i gi¸ trÞ cosine cña number.

• Math.exp (number) - Tr¶ l¹i gi¸ trÞ e^ number, víi e lµ h»ng sè Euler.

• Math.floor (number) - Tr¶ l¹i sè nguyªn lín nhÊt nhá h¬n hoÆc b»ng

number.

• Math.log (number) - Tr¶ l¹i logarit tù nhiªn cña number.

• Math.max (num1,num2) - Tr¶ l¹i gi¸ trÞ lín nhÊt gi÷a num1 vµ num2

• Math.min (num1,num2) - Tr¶ l¹i gi¸ trÞ nhá nhÊt gi÷a num1 vµ num2.

• Math.pos (base,exponent) - Tr¶ l¹i gi¸ trÞ base luü thõa exponent.

• Math.random (r) - Tr¶ l¹i mét sè ngÉu nhiªn gi÷a 0 vµ 1. Phwong thøc nµy chØ thùc hiÖn ®îc trªn nÒn t¶ng UNIX.

• Math.round (number) - Tr¶ l¹i gi¸ trÞ cña number lµm trßn tíi sè nguyªn gÇn nhÊt.

• Math.sin (number) - Tr¶ l¹i sin cña number.

• Math.sqrt (number) - Tr¶ l¹i c¨n bËc 2 cña number.

• Math.tan (number) - Tr¶ l¹i tag cña number.

§èi tîng Date§èi tîng Date lµ ®èi tîng cã s½n trong JavaScript. Nã cung cÊp nhiÒu ph¬ng thøc cã Ých ®Ó xö lý vÒ thêi gian vµ ngµy th¸ng. §èi tîng Date kh«ng cã thuéc tÝnh vµ ch¬ng tr×nh xö lý sù kiÖn.

PhÇn lín c¸c ph¬ng thøc date ®Òu cã mét ®èi tîng Date ®i cïng. C¸c ph¬ng thøc giíi thiÖu trong phÇn nµy sö dông ®èi tîng Date dateVar, vÝ dô:

dateVar = new Date ('August 16, 1996 20:45:04');

4.1.18. C¸c ph¬ng thøc

• dateVar.getDate() - Tr¶ l¹i ngµy trong th¸ng (1-31) cho dateVar.

• dateVar.getDay() - Tr¶ l¹i ngµy trong tuÇn (0=chñ nhËt,...6=thø b¶y) cho dateVar.

• dateVar.getHours() - Tr¶ l¹i giê (0-23) cho dateVar.

• dateVar.getMinutes() - Tr¶ l¹i phót (0-59) cho dateVar.

• dateVar.getSeconds() - Tr¶ l¹i gi©y (0-59) cho dateVar.

• dateVar.getTime() - Tr¶ l¹i sè lîng c¸c mili gi©y tõ 00:00:00 ngµy 1/1/1970.

• dateVar.getTimeZoneOffset() - Tr¶ l¹i ®é dÞch chuyÓnb»ng phót cña giê ®Þa ph¬ng hiÖn t¹i so víi giê quèc tÕ GMT.

• dateVar.getYear()-Tr¶ l¹i n¨m cho dateVar.

Khoa Toan tin, §¹i häc Quèc gia Hµ Néi

Page 54: ch¬ng 1 Lêi nãi ®Çu - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../file_goc_775961.pdf · Khoa Toan tin, §¹i häc Quèc gia Hµ Néi. JavaScript

JavaScript 54

• Date.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.

• dateVar.setDay(day) - §Æt ngµy trong th¸ng lµ day cho dateVar.

• dateVar.setHours(hours) - §Æt giê lµ hours cho dateVar.

• dateVar.setMinutes(minutes) - §Æt phót lµ minutes cho dateVar.

• dateVar.setMonths(months) - §Æt th¸ng lµ months cho dateVar.

• dateVar.setSeconds(seconds) - §Æt gi©y lµ seconds cho dateVar.

• dateVar.setTime(value) - §Æt thêi gian lµ value, trong ®ã value biÓu diÔn sè lîng mili gi©y tõ 00:00:00 ngµy 01/01/10970.

• dateVar.setYear(years) - §Æt n¨m lµ years cho dateVar.

• dateVar.toGMTString() - Tr¶ l¹i chuçi biÓu diÔn dateVar díi d¹ng GMT.

• dateVar.toLocaleString()-Tr¶ l¹i chuçi biÓu diÔn dateVar theo khu vùc thêi gian hiÖn thêi.

• Date.UTC (year, month, day [,hours] [,minutes] [,seconds]) - Tr¶ l¹i sè l-îng mili gi©y tõ 00:00:00 01/01/1970 GMT.

§è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. §è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.

4.1.19. C¸c ph¬ng thøc

• str.anchor (name) - §îc sö dông ®Ó t¹o ra thÎ <A> (mét c¸ch ®éng). Tham sè name lµ thuéc tÝnh NAME cña thÎ <A>.

• str.big() - KÕt qu¶ gièng nh thÎ <BIG> trªn chuçi str.

• str.blink() - KÕt qu¶ gièng nh thÎ <BLINK> trªn chuçi str.

• str.bold() - KÕt qu¶ gièng nh thÎ <BOLD> trªn chuçi str.

• str.charAt(a) - Tr¶ l¹i ký tù thø a trong chuçi str.

• str.fixed() - KÕt qu¶ gièng nh thÎ <TT> trªn chuçi str.

• str.fontcolor() - KÕt qu¶ gièng nh thÎ <FONTCOLOR = color>.

• str.fontsize(size) - KÕt qu¶ gièng nh thÎ <FONTSIZE = size>.

• str.index0f(srchStr [,index]) - Tr¶ l¹i vÞ trÝ trong chuçi str vÞ trÝ xuÊt hiÖn ®Çu tiªn cña chuçi srchStr. Chuçi str ®îc t×m tõ tr¸i sang ph¶i. 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.italics() - KÕt qu¶ gièng nh thÎ <I> trªn chuçi str.

Khoa Toan tin, §¹i häc Quèc gia Hµ Néi

Page 55: ch¬ng 1 Lêi nãi ®Çu - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../file_goc_775961.pdf · Khoa Toan tin, §¹i häc Quèc gia Hµ Néi. JavaScript

JavaScript 55

• str.lastIndex0f(srchStr [,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. Chuçi str ®îc t×m tõ ph¶i sang tr¸i. 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.link(href) - §îc sö dông ®Ó t¹o ra mét kÕt nèi HTML ®éng cho chhuçi str. Tham sè href lµ URL ®Ých cña liªn kÕt.

• str.small() - KÕt qu¶ gièng nh thÎ <SMALL> trªn chuçi str.

• str.strike() - KÕt qu¶ gièng nh thÎ <STRIKE> trªn chuçi str.

• str.sub() - T¹o ra mét subscript cho chuçi str, gièng thÎ <SUB>.

• str.substring(a,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 ký tù ®îc ®Õm tõ tr¸i sang ph¶i b¾t ®Çu tõ 0.

• str.sup() - T¹o ra superscript cho chuçi str, gièng thÎ <SUP>.

• str.toLowerCase() - §æi chuçi str thµnh ch÷ thêng.

• str.toUpperCase() - §æi chuçi str thµnh ch÷ hoa.

C¸c phÇn tö cña ®èi tîng FormForm ®îc t¹o bëi c¸c phÇn tö cho phÐp ngêi sö dông ®a th«ng tin vµo. Khi ®ã, 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 b¹n cã thÓ viÕt nh÷ng ®o¹n scripts chÌn vµo HTML cña b¹n ®Ó lµm viÖc víi c¸c phÇn tö cña form vµ c¸c gi¸ trÞ cña chóng.

B¶ng ?: C¸c phÇn tö cña form

PhÇn tö M« t¶

button Lµ mét nót bÊm h¬n lµ nót submit hay nót reset

(<INPUT TYPE="button">)

checkbox Mét checkbox (<INPUT TYPE="checkbox">)

FileUpload 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">)

hidden Mét trêng Èn (<INPUT TYPE="hidden">)

password Mét trêng text ®Ó nhËp mËt khÈu mµ tÊt c¶ c¸c ký tù nhËp vµo ®Òu hiÓn thÞ lµ dÊu (*)(<INPUT TYPE="password">)

radio Mét nót bÊm (<INPUT TYPE="radio">)

reset Mét nót reset(<INPUT TYPE="reset">)

select

Mét danh s¸ch lùa chän

(<SELECT><OPTION>option1</OPTION>

<OPTION>option2</OPTION></SELECT>)

submit Mét nót submit (<INPUT TYPE="submit">)

Khoa Toan tin, §¹i häc Quèc gia Hµ Néi

Page 56: ch¬ng 1 Lêi nãi ®Çu - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../file_goc_775961.pdf · Khoa Toan tin, §¹i häc Quèc gia Hµ Néi. JavaScript

JavaScript 56

text Mét trêng text (<INPUT TYPE="text">)

textArea Mét trêng text cho phÐp nhËp vµp nhiÒu dßng

<TEXTAREA>default text</TEXTAREA>)

Mçi phÇn tö cã thÓ ®îc ®Æt tªn ®Ó JavaScript truy nhËp ®Õn chóng qua tªn

4.1.20. Thuéc tÝnh type

Trong mçi phÇn tö cña form ®Òu cã thuéc tÝnh type, ®ã lµ mét x©u chØ ®Þnh râ kiÓu cña phÇn tö ®îc ®a vµo nh nót bÊm, mét trêng text hay mét checkbox...

X©u ®ã cã thÓ lµ mét trong c¸c gi¸ trÞ sau:

Text field: "text"

Radio button: "radio"

Checkbox: "checkbox"

Hidden field: "hidden"

Submit button: "submit"

Reset button: "reset"

Password field: "password"

Button: "button"

Select list: "select-one"

Multiple select lists: "select-multiple"

Textarea field: "textarea"

4.1.21. PhÇn tö button

Trong mét form HTML chuÈn, 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µ lu tr÷.

Mét phÇn tö button ®îc chØ ®Þnh râ khi sö dông thÎ INPUT:

<INPUT TYPE="button" NAME="name" VALUE= "buttonName">

Trong thÎ INPUT, name lµ tªn cña button, thuéc tÝnh VALUE cã chøa nh·n cña button sÏ ®îc hiÓn thÞ trªn Navigator cña browser.

ChØ cã mét thÎ sù kiÖn duy nhÊt ®èi víi button lµ onClick. KÕt hîp víi nã lµ c¸ch thøc duy nhÊt click.PhÇn tö buttton cã kh¶ n¨ng më réng cho phÐp ngêi lËp tr×nh JavaScript cã thÓ viÕt ®îc mét ®o¹n m· lÖnh JavaScript ®Ó thùc thi viÖc thªm vµo mét nót bÊm trong mét script.

Trong vÝ dô sau, thay v× sö dông onChange, b¹n cã thÓ chØnh söa script ®Ó ®Þnh gi¸ biÓu thøc khi button ®îc bÊm.

VÝ dô: §Þnh gi¸ mét form sö dông phÇn tö button.

<HTML>

Khoa Toan tin, §¹i häc Quèc gia Hµ Néi

Page 57: ch¬ng 1 Lêi nãi ®Çu - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../file_goc_775961.pdf · Khoa Toan tin, §¹i häc Quèc gia Hµ Néi. JavaScript

JavaScript 57

<HEAD>

<TITLE>button Example</TITLE>

<SCRIPT LANGUAGE="JavaScript">

<!-- HIDE FROM OTHER BROWSERS

function calculate(form) {

form.results.value = eval(form.entry.value);

}

// 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.blur();">

<BR>

<INPUT TYPE="button" VALUE="Calculate" onClick="calculate(this.form);">

</FORM>

</BODY>

</HTML>

4.1.22. PhÇn tö checkbox

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. C¸c checkbox cã nhiÒu thuéc tÝnh vµ c¸ch thøc h¬n button. 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.

B¶ng . C¸c thuéc tÝnh vµ c¸ch thøc cña phÇn tö checkbox.

C¸ch thøc vµ thuéc tÝnh

M« t¶

checked Cho biÕt tr¹ng th¸i hiÖn thêi cña checkbox (thuéc tÝnh)

defaultChecked Cho biÕt tr¹ng th¸i mÆc ®Þnh cña phÇn tö (thuéc tÝnh)

name Cho biÕt tªn cña phÇn tö ®îc chØ ®Þnh trong thÎ INPUT (thuéc tÝnh)

value Cho biÕt gi¸ trÞ hiÖn thêi cña phÇn tö ®îc chØ ®Þnh trong thÎ INPUT (thuéc tÝnh)

click() M« t¶ mét click vµo checkbox (C¸ch thøc)

PhÇn tö checkbox chØ cã mét thÎ sù kiÖn lµ onClick

VÝ dô: T¹o hép checkbox ®Ó nhËp vµo mét sè råi lùa chän tÝnh nh©n ®«i vµ b×nh ph¬ng:

Khoa Toan tin, §¹i häc Quèc gia Hµ Néi

Page 58: ch¬ng 1 Lêi nãi ®Çu - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../file_goc_775961.pdf · Khoa Toan tin, §¹i häc Quèc gia Hµ Néi. JavaScript

JavaScript 58

<HTML>

<HEAD>

<TITLE>checkbox Example</TITLE>

<SCRIPT>

<!-- HIDE FROM OTHER BROWSERS

function calculate(form,callingField) {

if (callingField == "result") { // if(1)

if (form.square.checked) { // if(2)

form.entry.value = Math.sqrt(form.result.value);

}

else {

form.entry.value = form.result.value / 2;

} //end if(2)

}

else{

if (form.square.checked) { // if(3)

form.result.value=form.entry.value*form.entry.value;

}

else {

form.result.value = form.entry.value * 2;

} //enfzd if(3)

}//end if(1)

}//end function

// STOP HIDING FROM OTHER BROWSERS -->

</SCRIPT>

</HEAD>

<BODY>

<FORM METHOD=POST>

Value: <INPUT TYPE="text" NAME="entry" VALUE=0

onChange="calculate(this.form,this.name);">

<BR>

Action (default double): <INPUT TYPE=checkbox NAME=square

onClick="calculate(this.form,this.name);">

Square

<BR>

Result: <INPUT TYPE="text" NAME="result" VALUE=0

onChange="calculate(this.form,this.name);">

</FORM>

</BODY>

Khoa Toan tin, §¹i häc Quèc gia Hµ Néi

Page 59: ch¬ng 1 Lêi nãi ®Çu - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../file_goc_775961.pdf · Khoa Toan tin, §¹i häc Quèc gia Hµ Néi. JavaScript

JavaScript 59

</HTML>

Trong script nµy, b¹n ®· 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...else

B¹n cã thÓ thªm mét checkbox tªn lµ square vµo form. NÕu hép nµy ®îc check, ch¬ng tr×nh sÏ lÊy gi¸ trÞ cña nã, nÕu kh«ng, mét thùc thi ®îc mÆc ®Þnh sÏ nh©n ®«i gi¸ trÞ cña nã. ThÎ sù kiÖn onClick trong checkbox ®îc ®Þnh nghÜa:

(<INPUT TYPE=checkbox NAME=square onClick= "calculate( this.form, this.name);"> )

Khi ®ã nÕu ngêi dïng thay ®æi mét c©u lÖnh kh¸c, form sÏ ®îc tÝnh to¸n l¹i.

§Ó t¹o ra sù më réng cho checkbox. b¹n cã thÓ thay ®æi hµm calculate() nh sau:

function calculate(form,callingField) {

if (callingField == "result") { // if (1)

if (form.square.checked) { // if (2)

form.entry.value = Math.sqrt(form.result.value);

}

else {

form.entry.value = form.result.value / 2;

} //end if(2)

}

else {

if (form.square.checked) { // if (3)

form.result.value=form.entry.value*form.entry.value;

}

else {

form.result.value = form.entry.value * 2;

} // end if (3)

} // end if (1)

}

4.1.23. 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ý. PhÇn tö file Upload ®îc chØ ®Þnh râ trong JavaScript b»ng ®èi tîng FileUpload.

§èi tîng chØ cã hai thuéc tÝnh lµ name vµ value, c¶ hai ®Òu lµ gi¸ trÞ x©u nh c¸c ®èi tîng kh¸c. Kh«ng cã c¸ch thøc hay thÎ file cho ®èi tîng nµy.

4.1.24. 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. Trêng hidden cã thÓ sö dông ®Ó lu 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) nhng nã kh«ng ®îc hiÓn thÞ trªn trang. Mäi ngêi cã thÓ sö dông trong JavaScript ®Ó lu c¸c gi¸ trÞ trong suèt mét script vµ ®Ó tÝnh to¸n kh«ng cÇn form.

Khoa Toan tin, §¹i häc Quèc gia Hµ Néi

Page 60: ch¬ng 1 Lêi nãi ®Çu - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../file_goc_775961.pdf · Khoa Toan tin, §¹i häc Quèc gia Hµ Néi. JavaScript

JavaScript 60

§èi tîng hidden chØ cã hai thuéc tÝnh lµ name vµ value, ®ã còng lµ nh÷ng gi¸ trÞ x©u gièng c¸c ®èi tîng kh¸c. Kh«ng cã c¸ch thøc hay thÎ sù kiÖn nµo cho ®èi tîng nµy.

4.1.25. PhÇn tö Password

§èi tîng 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(*). Nã cho phÐp ®a vµo nh÷ng th«ng tin bÝ mËt nh ®¨ng ký mËt khÈu...

§èi tîng Password cã 3 thuéc tÝnh gièng trêng text lµ: defaultValue, name vµ value. Kh«ng gièng víi hai phÇn tö ë trªn, trêng Password cã nhiÒu c¸ch thøc h¬n(focus(), blur(), and select() ) vµ t¬ng øng víi c¸c thÎ sù kiÖn: onFocus, onBlur, and onSelect.

PhÇn nµy sÏ ®îc nãi kü h¬n trong ®èi tîng text.

4.1.26. PhÇn tö radio

§èi tîng 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. Khi nhiÒu radio ®îc kÕt hîp thµnh mét nhãm, chØ cã mét nót ®îc chän trong bÊt kú mét thêi ®iÓm nµo. VÝ dô dßng lÖnh sau t¹o ra mét nhãm radio cã ba nót tªn lµ test:

<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 ®Æt cho chóng cã cïng mét tªn trong c¸c thÎ INPUT.

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. B¶ng sau hiÓn thÞ c¸c thuéc tÝnh vµ c¸ch thøc cña ®èi tîng radio.

B¶ng? . C¸c thuéc tÝnh vµ c¸ch thøc cña ®èi tîng radio.

Thuéc tÝnh vµ c¸ch thøc

M« t¶

checked M« t¶ tr¹ng th¸i hiÖn thêi cña phÇn tö radio (thuéc tÝnh)

defaultChecked M« t¶ tr¹ng th¸i mÆc ®Þnh cña phÇn tö (thuéc tÝnh)

index M« t¶ thø tù cña nót radio ®îc chän hiÖn thêi trong mét nhãm

length M« t¶ tæng sè nót radio trong mét nhãm

name M« t¶ tªn cña phÇn tö ®îc chØ ®Þnh trong thÎ INPUT (thuéc tÝnh)

value M« t¶ gi¸ trÞ hiÖn thêi cña phÇn tö ®îc ®Þnh ra trong thÎ 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 thÎ sù kiÖn lµ onClick.

Kh«ng cã bÊt kú mét ®èi tîng form nµo cã thuéc tÝnh index vµ length. Do mét nhãm radio gåm nhiÒu phÇn tö radio, nªn chóng ®îc ®Æt trong mét m¶ng c¸c nót radio vµ ®îc ®¸nh sè tõ 0. Trong vÝ dô nhãm radio cã tªn test ë trªn, nÕu nhãm ®ã n»m trong mét form cã tªn lµ "testform", b¹n cã thÓ gäi tíi nót radio thø hai b»ng tªn "testform.test[1]" vµ cã thÓ kiÓm tra gi¸ trÞ cña nã b»ng "testform.test[1].checked"

§Ó minh ho¹ râ c¸ch dïng ®èi tîng radio, ta xem vÝ dô sau:

VÝ dô:

Khoa Toan tin, §¹i häc Quèc gia Hµ Néi

Page 61: ch¬ng 1 Lêi nãi ®Çu - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../file_goc_775961.pdf · Khoa Toan tin, §¹i häc Quèc gia Hµ Néi. JavaScript

JavaScript 61

<HTML>

<HEAD>

<TITLE>radio button Example</TITLE>

<SCRIPT>

<!-- HIDE FROM OTHER BROWSERS

function calculate(form,callingField) {

if (callingField == "result") {

if (form.action[1].checked) {

form.entry.value = Math.sqrt(form.result.value);

} else {

form.entry.value = form.result.value / 2;

}

} else {

if (form.action[1].checked) {

form.result.value=form.entry.value*form.entry.value;

} else {

form.result.value = form.entry.value * 2;

}

}

}

// STOP HIDING FROM OTHER BROWSERS -->

</SCRIPT>

</HEAD>

<BODY>

<FORM METHOD=POST>

Value: <INPUT TYPE="text" NAME="entry" VALUE=0

onChange="calculate(this.form,this.name);"> <BR>

Action:<BR>

<INPUT TYPE="radio" NAME="action" VALUE="twice"

onClick="calculate(this.form,this.name);"> Double<BR>

<INPUT TYPE="radio" NAME="action" VALUE="square"

onClick="calculate(this.form,this.name);"> Square <BR>

Result: <INPUT TYPE=text NAME="result" VALUE=0

onChange="calculate(this.form,this.name);">

</FORM>

</BODY>

</HTML>

Khoa Toan tin, §¹i häc Quèc gia Hµ Néi

Page 62: ch¬ng 1 Lêi nãi ®Çu - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../file_goc_775961.pdf · Khoa Toan tin, §¹i häc Quèc gia Hµ Néi. JavaScript

JavaScript 62

Trong vÝ dô nµy, sù thay ®æi tõ checkbox ë trªn lµ rÊt khã nhËn biÕt. Thay cho mét checkbox trong vÝ dô tríc, ë ®©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, do ®ã hai nót nµy cã thÓ truy nhËp b»ng action[0] vµ action[1]. B»ng c¸ch nµy, b¹n chØ cÇn thay ®æi tham chiÕu ®Õn hµm calculate() tõ form.square.checked thµnh form.action[1].checked.

4.1.27. PhÇn tö reset

Sö dông ®èi tîng reset, b¹n cã thÓ t¸c ®éng ngîc l¹i ®Ó click vµo nót Reset. Còng gièng ®èi tîng button, ®èi tîng reset cã hai thuéc tÝnh lµ name vµ value, vµ mét c¸ch thøc click(), mét thÎ sù kiÖn onClick.

HÇu hÕt nh÷ng ngêi lËp tr×nh khong sö dông thÎ sù kiÖn onClick cña nót reset ®Ó kiÓm tra gi¸ trÞ cña nót nµy, ®èi tîng reset thêng dïng ®Ó xo¸ form.

VÝ dô sau minh ho¹ c¸ch sö dông nót reset ®Ó xo¸ c¸c gi¸ trÞ cña form.

VÝ dô:

<HTML>

<HEAD>

<TITLE>reset Example</TITLE>

<SCRIPT LANGUAGE="JavaScript">

<!-- HIDE FROM OTHER BROWSERS

function clearForm(form) {

form.value1.value = "Form";

form.value2.value = "Cleared";

}

// STOP HIDING FROM OTHER BROWSERS -->

//SCRIPT>

</HEAD>

<BODY>

<FORM METHOD=POST>

<INPUT TYPE="text" NAME="value1"><BR>

<INPUT TYPE="text" NAME="value2"><BR>

<INPUT TYPE="reset" VALUE="Clear Form" onClick="clearForm(this.form);">

</FORM>

</BODY>

</HTML>

4.1.28. PhÇn tö select

Danh s¸ch lùa chän trong c¸c form HTML xuÊt hiÖn menu drop-down hoÆc danh s¸ch cuén ®îc cña c¸c ®èi tîng cã thÓ ®îc lùa chän. C¸c danh d¸ch ®îc x©y dùng b»ng c¸ch sö dông hai thÎ SELECT vµ OPTION. VÝ dô:

<SELECT NAME="test">

Khoa Toan tin, §¹i häc Quèc gia Hµ Néi

Page 63: ch¬ng 1 Lêi nãi ®Çu - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../file_goc_775961.pdf · Khoa Toan tin, §¹i häc Quèc gia Hµ Néi. JavaScript

JavaScript 63

<OPTION SELECTED>1

<OPTION>2

<OPTION>3

</SELECT>

t¹o ra ba thµnh phÇn cña menu th¶ drop-down víi ba lùa chän 1,2 vµ 3. Sö dông thuéc tÝnh SIZE b¹n cã thÓ t¹o ta mét danh s¸ch cuén víi sè phÇn tö hiÓn thÞ ë lÇn thø nhÊt. §Ó bËt menu drop-down trong mét menu cuén víi hai thµnh phÇn hiÓn thÞ, b¹n cã thÓ sö dông nh sau:

<SELECT NAME="test" SIZE=2>

<OPTION SELECTED>1

<OPTION>2

<OPTION>3

</SELECT>

Trong c¶ hai vÝ dô trªn, ngêi sö dông chØ cã thÓ cã mét lùa chän. NÕu sö dông thuéc tÝnh MULTIPLE, b¹n cã thÓ cho phÐp ngêi sö dông lùa chän nhiÒu h¬n mét gi¸ trÞ trong danh s¸ch lùa chän:

<SELECT NAME="test" SIZE=2 MULTIPLE>

<OPTION SELECTED>1

<OPTION>2

<OPTION>3

</SELECT>

Danh s¸ch lùa chän trong JavaScript lµ ®èi tîng select. §èi tîng nµy t¹o ra mét vµi thµnh phÇn t¬ng tù c¸c button vµ radio.

Víi c¸c thµnh phÇn lùa chän, danh s¸ch c¸c lùa chän ®îc chøa trong mét m¶ng ®îc ®¸nh sè tõ 0. Trong trêng hîp nµy, m¶ng lµ mét thuéc tÝnh cña ®èi tîng select gäi lµ options.

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. Bæ sung thªm vµo m¶ng option, phÇn tö select cã thuéc tÝnh selectedIndex, cã chøa sè thø tù cña option ®îc lùa chän hiÖn thêi.

Mçi option trong danh s¸ch lùa chän ®Òu cã mét vµi thuéc tÝnh:

• DEFAULTSELECTED: cho biÕt option cã ®îc mÆc ®Þnh lµ lùa chän trong thÎ OPTION hay kh«ng.

• INDEX: chøa gi¸ trÞ sè thø tù cña option hÞªn thêi trong m¶ng option.

• SELECTED: cho biÕt tr¹ng th¸i hiÖn thêi cña option

• TEXT: cã chøa gi¸ trÞ cña dßng text hiÓn thÞ trªn menu cho mçi option, vµ thuéc tÝnh value mäi gi¸ trÞ chØ ra trong thÎ OPTION.

§èi tîng select kh«ng cã c¸c c¸ch thøc ®îc ®Þnh nghÜa s½n. Tuy nhiªn, ®èi tîng select cã ba thÎ sù kiÖn, ®ã lµ onBlue, onFocus, onChange, chóng ®Òu lµ nh÷ng ®èi tîng text.

VÝ dô b¹n cã danh s¸ch lùa chän sau:

<SELECT NAME="example" onFocus="react();">

<OPTION SELECTED VALUE="Number One">1

<OPTION VALUE="The Second">2

Khoa Toan tin, §¹i häc Quèc gia Hµ Néi

Page 64: ch¬ng 1 Lêi nãi ®Çu - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../file_goc_775961.pdf · Khoa Toan tin, §¹i häc Quèc gia Hµ Néi. JavaScript

JavaScript 64

<OPTION VALUE="Three is It">3

</SELECT>

Khi lÇn ®Çu tiªn hiÓn thÞ b¹n cã thÓ truy nhËp tíi c¸c th«ng tin sau:

example.options[1].value = "The Second"

example.options[2].text = "3"

example.selectedIndex = 0

example.options[0].defaultSelected = true

example.options[1].selected = false

NÕu ngêi sö dông kÝch vµo menu vµ lùa chän option thø hai, th× thÎ onFocus sÏ thùc hiÖn, vµ khi ®ã gi¸ trÞ cña thuéc tÝnh sÏ lµ:

example.options[1].value = "The Second"

example.options[2].text = "3"

example.selectedIndex = 1

example.options[0].defaultSelected = true

example.options[1].selected = true

Söa c¸c danh s¸ch lùa chänNavigator 3.0 cho phÐp thay ®æi néi dung cña danh s¸ch lùa chän tõ JavaScript b»ng c¸ch liªn kÕt c¸c gi¸ trÞ míi cho thuéc tÝnh text cña c¸c thùc thÓ trong danh s¸ch.

VÝ dô, trong vÝ dô tríc, b¹n ®· t¹o ra mét danh s¸ch lùa chän nh sau:

<SELECT NAME="example" onFocus="react();">

<OPTION SELECTED VALUE="Number One">1

<OPTION VALUE="The Second">2

<OPTION VALUE="Three is It">3

</SELECT>

Cã thÓ thay ®æi ®îc dßng text hiÓn thÞ trªn nót thø hai thµnh "two" b¨ng:

example.options[1].text = "two";

Cã thÓ thªm c¸c lùa chän míi vµo danh s¸ch b»ng c¸ch sö dông ®èi t-îng x©y dùng Option() theo có ph¸p:

newOptionName = new Option(optionText, optionValue, defaultSelected, selected);

selectListName.options[index] = newOptionName;

ViÖc t¹o ®èi tîng option() nµy víi dßng text ®îc chØ tríc, defaultSelected vµ selected nh trªn ®· ®Þnh ra nh÷ng gi¸ trÞ kiÓu Boolean. §è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.

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 cho ®èi tîng muèn xo¸

Khoa Toan tin, §¹i häc Quèc gia Hµ Néi

Page 65: ch¬ng 1 Lêi nãi ®Çu - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../file_goc_775961.pdf · Khoa Toan tin, §¹i häc Quèc gia Hµ Néi. JavaScript

JavaScript 65

selectListName.options[index] = null;

1.1 PhÇn tö submit

Nót Submit lµ mét trêng hîp ®Æc biÖt cña button, còng nh nót Reset. 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.

Gièng nh ®èi tîng button vµ reset, ®èi tîng submit cã s½n thuéc tÝnh name vµ value, c¸ch thøc click() vµ thÎ sù kiÖn onClick.

1.2 PhÇn tö Text

PhÇn tö nµy n»m trong nh÷ng phÇn tö hay ®îc sö dông nhÊt trong c¸c form HTML. T¬ng tù nh trêng Password, trêng text cho phÐp nhËp vµo mét dßng ®¬n, nhng c¸c ký tù cña nã hiÖn ra b×nh thêng.

®èi tîng text cã ba thuéc tÝnh:defautValue, name vµ value. Ba c¸ch thøc m« pháng sù kiÖn cña ngêi sö dông: focus(), blur() vµ select(). Cã 4 thÎ sù kiÖn lµ: obBlur, onFocus, onChange, onSelect. Chó ý c¸c sù kiÖn nµy chØ thùc hiÖn khi con trá ®· ®îc kÝch ra ngoµi trêng text.

B¶ng sau m« t¶ c¸c thuéc tÝnh vµ c¸ch thøc cña ®èi tîng text.

B¶ng .C¸c thuéc tÝnh vµ c¸ch thøc cña ®èi tîng text.

C¸ch thøc vµ thuéc tÝnh M« t¶

defaultValue ChØ ra gi¸ trÞ mÆc ®Þnh cña phÇn tö ®îc chØ ra trong thÎ INPUT (thuéc tÝnh)

name Tªn cña ®èi tîng ®îc chØ ra trong thÎ INPUT (thuéc tÝnh)

value Gi¸ trÞ hiÖn thêi cña phÇn tö (thuéc tÝnh)

focus() M« t¶ viÖc con trá tíi trêng text (c¸ch thøc)

blur() M« t¶ viÖc con trá rêi trêng text (c¸ch thøc)

select() M« t¶ viÖc lùa chän dßng text trong trêng text (c¸ch thøc)

Mét chó ý quan träng lµ cã thÓ g¸n gi¸ trÞ cho trêng text b»ng c¸ch liªn kÕt c¸c gi¸ trÞ víi thuéc tÝnh value. Trong vÝ dô sau ®©y, dßng text ®îc ®a vµo trêng ®Çu tiªn ®îc lÆp l¹i trong trêng text thø hai, vµ mäi dßng text ®îc ®a vµo trêng text thø hai l¹i ®îc lÆp l¹i trong trêng texxt thø nhÊt. Kh¶ n¨ng nµy cña nã cã thÓ ¸p dông ®Ó tù ®éng cËp nhËt hoÆc thay ®æi d÷ liÖu.

VÝ dô. Tù ®éng cËp nhËt c¸c trêng text .

<HTML>

<HEAD>

Khoa Toan tin, §¹i häc Quèc gia Hµ Néi

Page 66: ch¬ng 1 Lêi nãi ®Çu - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../file_goc_775961.pdf · Khoa Toan tin, §¹i häc Quèc gia Hµ Néi. JavaScript

JavaScript 66

<TITLE>text Example</TITLE>

<SCRIPT LANGUAGE="JavaScript">

<!-- HIDE FROM OTHER BROWSERS

function echo(form,currentField) {

if (currentField == "first")

form.second.value = form.first.value;

else

form.first.value = form.second.value;

}

// STOP HIDING FROM OTHER BROWSERS -->

</SCRIPT>

</HEAD>

<BODY>

<FORM>

<INPUT TYPE=text NAME="first" onChange="echo(this.form,this.name);">

<INPUT TYPE=text NAME="second" onChange="echo(this.form,this.name);">

</FORM>

</BODY>

</HTML>

1.3 PhÇn tö Textarea

ThÎ TEXTAREA cung cÊp mét hép cho phÐp nhËp sè dßng text do ngêi thiÕt kÕ ®Þnh tríc. VÝ dô:

<TEXTAREA NAME="fieldName" ROWS=10 COLS=25>

Default Text Here

</TEXTAREA>

vÝ dô nµy t¹o ra mét trêng text cho phÐp ®a vµo 10 hµng ,mçi hµng 25 ký tù. Dßng "Defautl Text Here"sÏ xuÊt hiÖn trong trêng nµy vµo lÇn hiÓn thÞ ®Çu tiªn.

Còng nh phÇn tö text , JavaScript cung cÊp cho b¹n c¸c thuéc tÝnh defaultValue, name, vµ value, c¸c c¸ch thøc focus(), select(), vµ blur(), c¸c thÎ sù kiÖn onBlur, onForcus, onChange, onSelect.

2. M¶ng elements[]

Khoa Toan tin, §¹i häc Quèc gia Hµ Néi

Page 67: ch¬ng 1 Lêi nãi ®Çu - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../file_goc_775961.pdf · Khoa Toan tin, §¹i häc Quèc gia Hµ Néi. JavaScript

JavaScript 67

C¸c ®èi tîng cña form cã thÓ ®îc gäi tíi b»ng m¶ng elements[]. VÝ dô b¹n 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">

</FORM>

b¹n cã thÓ gäi tíi ba thµnh phÇn nµy nh sau: document.elements[0], document.elements[1], document.elements[2], h¬n n÷a cßn cã thÓ gäi document.testform.one, document.testform.two,

document.testform.three.

Thuéc tÝnh nµy thêng ®îc sö dông trong c¸c mèi quan hÖ tuÇn tù cña c¸c phÇn tö h¬n lµ dïng tªn cña chóng.

3. M¶ng form[]

C¸c thÎ sù kiÖn ®îc thiÕt kÕ ®Ó lµm viÖc víi c¸c form riªng biÖt hoÆc c¸c trêng ë mét thêi ®iÓm, nã rÊt h÷u dông ®Ó cho phÐp gäi tíi c¸c form cã liªn quan trong cïng mét trang.

M¶ng form[] ®Ò cËp ®Õn ë ®©y cã thÓ cã nhiÒu x¸c ®Þnh c¸c nh©n cña form trªn cïng mét trang vµ have information in a single field match in all three forms. Cã thÓ gäi b»ng document.forms[] thay v× gäi b»ng tªn form. Trong script nµy, b¹n cã hai trêng text ®Ó nhËp vµ n»m trªn hai form ®éc lËp víi nhau. Sö dông m¶ng form b¹n cã thÓ t¬ng t¸c trªn c¸c gi¸ trÞ cña c¸c trêng trong hai form cïng mét lóc khi ngêi sö dông thay ®æi gi¸ trÞ trªn mét form.

<HTML>

<HEAD>

<TITLE>forms[] Example</TITLE>

</HEAD>

<BODY>

<FORM METHOD=POST>

<INPUT TYPE=text onChange="document.forms[1].elements[0].value = this.value;">

</FORM>

<FORM METHOD=POST>

<INPUT TYPE=text onChange="document.forms[0].elements[0].value = this.value;">

Khoa Toan tin, §¹i häc Quèc gia Hµ Néi

Page 68: ch¬ng 1 Lêi nãi ®Çu - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../file_goc_775961.pdf · Khoa Toan tin, §¹i häc Quèc gia Hµ Néi. JavaScript

JavaScript 68

</FORM>

</BODY>

</HTML>

MÆt kh¸c, b¹n còng cã thÓ truy nhËp ®Õn form b»ng tªn form ®îc ®Æt trong thÎ FORM:

<FORM METHOD=POST NAME="name">

Khi ®ã b¹n cã thÓ gäi lµ document.forms["name"] hoÆc document.name

4. Xem l¹i c¸c lÖnh vµ më réng

LÖnh/ Më réng KiÓu M« t¶

blur() c¸ch thøc JavaScript M« t¶ viÖc dÞch chuyÓn con trá tõ mét phÇn tö

form.action c¸ch thøc JavaScript X©u chøa gi¸ trÞ cña thuéc tÝnh ACTION trong thÎ FORM

form.elemrnts thuéc tÝnh JavaScript m¶ng chøa danh s¸ch c¸c phÇn tö trong form (nh checkbox, trêng text, danh s¸ch lùa chän)

form.encoding thuéc tÝnh JavaScript x©u chøa kiÓu MIME sö dông khi chuyÓn th«ng tin tõ form tíi server

form,name thuéc tÝnh JavaScript X©u chøa gi¸ trÞ thuéc tÝnh NAME trong thÎ FORM

form.target thuéc tÝnh JavaScript X©u chøa tªn cöa sæ ®Ých bëi mét form submition

form.submit c¸ch thøc JavaScript M« t¶ viÖc submit mét form HTML

type thuéc tÝnh JavaScript ¸nh x¹ kiÓu cña mét phÇn tö form thµnh mét x©u.

onSubmit ThÎ sù kiÖn thÎ sù kiÖn cho viÖc submit

button thuéc tÝnh HTML Thuéc tÝnh kiÓu cho c¸c nót bÊm cña HTML (<INPUT TYPE=button>)

checkbox thuéc tÝnh HTML Thuéc tÝnh kiÓu cho c¸c checkbox cña HTML (<INPUT TYPE=checkbox>)

pasword thuéc tÝnh HTML Thuéc tÝnh kiÓu cho c¸c dßng pasword cña HTML(<INPUT TYPE=password>)

radio thuéc tÝnh HTML Thuéc tÝnh kiÓu cho c¸c nót radio cña HTML (<INPUT TYPE=radio>)

Khoa Toan tin, §¹i häc Quèc gia Hµ Néi

Page 69: ch¬ng 1 Lêi nãi ®Çu - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../file_goc_775961.pdf · Khoa Toan tin, §¹i häc Quèc gia Hµ Néi. JavaScript

JavaScript 69

reset thuéc tÝnh HTML Thuéc tÝnh kiÓu cho c¸c nót reset cña HTML (<INPUT TYPE=reset>)

SELECT thÎ HTML Hép thÎ cho danh s¸ch lùa chän

OPTION thÎ HTML chØ ra c¸c lùa chän trong danh s¸ch lùa chän(<SELECT><OPTION>Option 1<OPTION>Option 2</SELECT>)

submit thuéc tÝnh HTML Thuéc tÝnh kiÓu cña nót submit (<INPUT TYPE=submit>)

text thuéc tÝnh HTML Thuéc tÝnh kiÓu cña trêng trong form (<INPUT TYPE=text>)

TEXTAREA ThÎ HTML Hép thÎ cho nhiÒu dßng text (<TEXTAREA> defautl text </TEXTAREA>)

name thuéc tÝnh JavaScript X©u chøa tªn phÇn tö HTML (button, checkbox, password...)

value thuéc tÝnh JavaScript X©u chøa gi¸ trÞ hiªn thêi cña mét phÇn tö HTML(button, checkbox, password...)

click() c¸ch thøc JavaScript M« t¶ viÖc kÝch vµo mét phÇn tö trªn form (button, checkbox,password)

onClick thuéc tÝnh JavaScript ThÎ sù kiÖn cho sù kiÖn kÝch (button, checkbox, radio button, reset, selection list, submit)

checked thuéc tÝnh JavaScript Gi¸ trÞ kiÓu Boolean m« t¶ mét lùa chän check(checkbox, radio button)

defaultChecked thuéc tÝnh JavaScript X©u chøa gi¸ trÞ mÆc ®Þnh cña mét phÇn tö HTML (password, text, textarea)

focus() c¸ch thøc JavaScript M« t¶ viÖc con trá tíi mét phÇn tö (password, text, textarea)

blur() c¸ch thøc JavaScript M« t¶ viÖc con trá rêi khái mét phÇn tö (password, text, textarea)

select() c¸ch thøc JavaScript M« t¶ viÖc lùa chän dßng text trong mét trêng (password, text, textarea)

onFocus() ThÎ sù kiÖn ThÎ sù kiÖn cho sù kiÖn focus(password, selection list, text, textarea)

Khoa Toan tin, §¹i häc Quèc gia Hµ Néi

Page 70: ch¬ng 1 Lêi nãi ®Çu - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../file_goc_775961.pdf · Khoa Toan tin, §¹i häc Quèc gia Hµ Néi. JavaScript

JavaScript 70

onBlur ThÎ sù kiÖn ThÎ sù kiÖn cho sù kiÖn blur (password, selection list, text, textarea)

onChange ThÎ sù kiÖn ThÎ sù kiÖn cho sù kiÖn khi gi¸ trÞ cña trêng thay ®æi (password, selection list, text, textarea)

onSelect ThÎ sù kiÖn ThÎ sù kiÖn khi ngêi sö dông chän dßng text trong mét trêng (password, text, textarea)

index thuéc tÝnh JavaScript Lµ mét sè nguyªn m« t¶ lùa chän hiÖn thêi trong mét nhãm lùa chän (radio button)

length thuéc tÝnh JavaScript Sè nguyªn m« t¶ tæng sè c¸c lùa chän trong mét nhãm c¸c lùa chän (radio button)

dafautlSelected thuéc tÝnh JavaScript Gi¸ trÞ Boolean m« t¶ khi cã mét lùa chän ®îc ®Æt lµ mÆc ®Þnh (seledtion list)

options thuéc tÝnh JavaScript M¶ng c¸c lùa chän trong danh s¸ch lùa chän

text thuéc tÝnh JavaScript Dßng text hiÓn thÞ cho mét thµnh phÇn cña menu trong danh s¸ch lùa chän

TABLE thÎ HTML Hép thÎ cho c¸c b¶ng HTML

TR thÎ HTML Hép thÎ cho c¸c hµng cña mét b¶ng HTML

TD thÎ HTML Hép thÎ cho c¸c « cña mét hµng trong mét b¶ng HTML

COLSPAN thuéc tÝnh HTML Lµ thuéc tÝnh cña thÎ TD m« t¶ trong mét « cña b¶ng cã nhiÒu cét

ROWSPAN thuéc tÝnh HTML Lµ thuéc tÝnh cña thÎ TD m« t¶ trong mét « cña b¶ng cã nhiÒu hµng

BODER thuéc tÝnh HTML Lµ thuéc tÝnh cña thÎ TABLE m« t¶ ®é réng ®êng viÒn cña b¶ng

document.forms[] thuéc tÝnh JavaScript m¶ng cña c¸c ®èi tîng form víi mét danh s¸ch c¸c form trong mét document

string.substring() c¸ch thøc JavaScript Tr¶ l¹i mét x©u con cña x©u string tõ

Khoa Toan tin, §¹i häc Quèc gia Hµ Néi

Page 71: ch¬ng 1 Lêi nãi ®Çu - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../file_goc_775961.pdf · Khoa Toan tin, §¹i häc Quèc gia Hµ Néi. JavaScript

JavaScript 71

tham sè vÞ trÝ ký tù ®Çu ®Õn vÞ trÝ ký tù cuèi

Math.floor() c¸ch thøc JavaScript Tr¶ l¹i mét gi¸ trÞ nguyªn tiÕp theo nhá h¬n gi¸ trÞ cña tham sè ®a vµo.

string.length thuéc tÝnh JavaScript Gi¸ trÞ nguyªn cña sè thø tù ký tù cuèi cïng trong x©u string

Khoa Toan tin, §¹i häc Quèc gia Hµ Néi

Page 72: ch¬ng 1 Lêi nãi ®Çu - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../file_goc_775961.pdf · Khoa Toan tin, §¹i häc Quèc gia Hµ Néi. JavaScript

JavaScript 72

5. M« h×nh ®èi tîng (Object Model)

§èi tîng vµ thuéc tÝnhNh ®· biÕt, mét ®èi tîng trong JavaScript cã c¸c thuéc tÝnh ®i kÌm víi nã. B¹n

cã thÓ truy nhËp ®Õn c¸c thuéc tÝnh cña nã b»ng c¸ch gäi :

objectName.propertyName

C¶ tªn ®èi tîng vµ tªn thuéc tÝnh ®Òu nh¹y c¶m. B¹n ®Þnh nghÜa mét thuéc tÝnh b»ng c¸ch g¸n cho nã mét gi¸ trÞ. VÝ dô, 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 s½n sµng). B¹n cã thÓ lÊy c¸c thuéc tÝnh cã tªn make, model vµ year cña nã nh sau:

myCar.make = “Ford“

myCar.model = “Mustang“

myCar.year = 69;

Cã mét m¶ng lu tr÷ tËp hîp c¸c gi¸ trÞ tham chiÕu tíi tõng biÕn. Thuéc tÝnh vµ m¶ng trong JavaScript cã quan hÖ mËt thiÕt víi nhau, thùc ra chóng chØ kh¸c nhau vÒ c¸ch giao tiÕp víi cïng mét cÊu tróc d÷ liÖu. VÝ dô 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;

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 ®ã. §Ó minh ho¹ viÖc mµy ®îc thùc hiÖn nh thÕ nµo, 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.

function show_props (obj, obj_name)

{

var result=””

for (i in obj)

result=result+ obj_name + “.”+ i+ “=” + obj[i] + “\n”

return result

}

Khi gäi hµm show_props(myCar,”myCar”) sÏ hiÖn lªn:

myCar.make = Ford

myCar.model = Mustang

myCar.year = 69;

Khoa Toan tin, §¹i häc Quèc gia Hµ Néi

Page 73: ch¬ng 1 Lêi nãi ®Çu - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../file_goc_775961.pdf · Khoa Toan tin, §¹i häc Quèc gia Hµ Néi. JavaScript

JavaScript 73

T¹o c¸c ®èi tîng míiC¶ JavaScript client-side vµ server-side ®Òu cã mét sè ®èi tîng ®îc ®Þnh nghÜa tríc. Tuy nhiªn, b¹n còng cã thÓ t¹o ra nh÷ng ®èi tîng cña riªng b¹n. Trong JavaScript 1.2, nÕu b¹n chØ muèn t¹o ra mét ®èi tîng duy nhÊt cña mét kiÓu ®èi tîng, b¹n cã thÓ t¹o nã b»ng c¸ch sö dông khëi t¹o ®èi tîng. HoÆc nÕu b¹n muèn t¹o ra nhiÒu c¸ thÓ cña mét kiÓu ®èi tîng, b¹n cã thÓ t¹o ra mét hµm x©y dùng tríc, sau ®ã t¹o ra c¸c ®èi tîng cã kiÓu cña hµm ®ã b»ng to¸n tö new

5.1.1. Sö dông khëi t¹o ®èi tîng

Trong nh÷ng phiªn b¶n tríc cña Navigator, b¹n chØ cã thÓ t¹o ra mét ®èi tîng b»ng c¸ch sö dông hµm x©y dùng chóng hoÆc sö dông mét hµm ®îc cung cÊp bëi mét vµi ®èi tîng kh¸c ®Ó ®¹t ®îc môc ®Ých.

Tuy nhiªn, trong Navigator 4.0, b¹n 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.B¹n sö dông c¸ch nµy khi b¹n 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.

Có ph¸p ®Ó t¹o ra mét ®èi tîng b»ng c¸ch khëi t¹o ®èi tîng (Object Initializers):

objectName={property1: value1, property2: value2,

..., propertyN: valueN}

Trong ®ã objectName lµ tªn cña ®èi tîng míi, mçi propertyI lµ mét x¸c minh (cã thÓ lµ mét tªn, 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. 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. NÕu nh b¹n kh«ng cÇn dïng ®Õn ®èi tîng ®ã trong mäi chç, b¹n kh«ng cÇn ph¶i g¸n nã cho mét biÕn.

NÕu mét ®èi tîng ®îc t¹o b»ng c¸ch khëi t¹o ®èi tîng ë møc cao nhÊt, mçi lÇn ®èi tîng ®ã xuÊt hiÖn trong c¸c biÓu thøc, JavaScript sÏ ®¸nh gi¸ l¹i nã mét lÇn. Ngoµi ra, nÕu sö dông viÖc khëi t¹o nµy trong mét hµm th× mçi lÇn gäi hµm, ®èi tîng sÏ ®îc khëi t¹o mét lÇn

Gi¶ sö b¹n cã c©u lÖnh sau:

if (condition)

x={hi: ”there.”}

Trong trêng hîp nµy, JavaScript sÏ t¹o ra mét ®èi tîng vµ g¾n nã vµo biÕn x nÕu biÓu thøc condition ®îc ®¸nh gi¸ lµ ®óng

Cßn vÝ dô sau t¹o ra mét ®èi tîng myHonda víi 3 thuéc tÝnh:

myHonda={color:”red”,wheels:4,engine:{cylinder:4,size:2.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ã

Trong Navigator 4.0, b¹n còng cã thÓ sö dông mét khëi t¹o ®Ó t¹o mét m¶ng. Có ph¸p ®Ó t¹o m¶ng b»ng c¸ch nµy kh¸c víi t¹o ®èi tîng:

arrayName=[element0, element1,...,elementN]

Trong ®ã, arrayName lµ tªn cña m¶ng míi, vµ mçi elementI lµ gi¸ trÞ cña phÇn tö ë vÞ trÝ ®ã cña m¶ng. Khi b¹n t¹o mét m¶ng b»ng c¸ch sö dông ph¬ng ph¸p khëi t¹o, th× nã sÏ coi mçi gi¸ trÞ lµ mét phÇn tö trªn m¶ng, vµ chiÒu dµi cña m¶ng chÝnh lµ sè c¸c tham sè.

Khoa Toan tin, §¹i häc Quèc gia Hµ Néi

Page 74: ch¬ng 1 Lêi nãi ®Çu - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../file_goc_775961.pdf · Khoa Toan tin, §¹i häc Quèc gia Hµ Néi. JavaScript

JavaScript 74

B¹n kh«ng cÇn ph¶i chØ ®Þnh râ tÊt c¶ c¸c phÇn tö trªn m¶ng míi. NÕu b¹n ®Æt hai dÊu phÈy vµo hµng, th× m¶ng sÏ ®îc t¹o víi nh÷ng chèn trèng cho nh÷ng phÇn tö cha ®îc ®Þnh nghÜa nh vÝ dô díi ®©y:

NÕu mét m¶ng ®îc t¹o b»ng c¸ch khëi t¹o(initializer) ë møc cao nhÊt, mçi lÇn m¶ng ®ã xuÊt hiÖn trong c¸c biÓu thøc, JavaScript sÏ ®¸nh gi¸ l¹i nã mét lÇn. Ngoµi ra, nÕu sö dông viÖc khëi t¹o nµy trong mét hµm th× mçi lÇn gäi hµm, m¶ng sÏ ®îc khëi t¹o mét lÇn

VÝ dô1: T¹o mét m¶ng coffees víi 3 phÇn tö vµ ®é dµi cña m¶ng lµ 3:

coffees = [“French Roast”,”Columbian”,”Kona”]

VÝ dô 2: 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”, ,” Surgeon”]

Víi biÓu thøc nµy, fish[0] lµ “Lion”, fish[2] lµ ” Surgeon”, vµ fish[2] cha ®îc ®Þnh nghÜa

5.1.2. Sö dông mét hµm x©y dùng(Constructor Function)

B¹n cã thÓ t¹o ra ®èi tîng cña riªng m×nh víi hai bíc sau:

1. §Þnh nghÜa kiÓu cña ®èi tîng b»ng c¸ch viÕt mét hµm x©y dùng.

2. 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, ta ph¶i t¹o ra mét hµm ®Ó chØ ®Þnh râ tªn, c¸c thuéc tÝnh vµ c¸c c¸ch thøc cña kiÓu ®èi tîng ®ã. VÝ dô gi¶ sö b¹n muèn t¹o mét kiÓu ®èi tîng « t« víi tªn lµ car, cã c¸c thuéc tÝnh make, model, year vµ color, ®Ó thùc hiÖn viÖc nµy cã thÓ viÕt mét hµm nh sau:

function car(make, model, year ){

this.make = make

this.model = model

this.year = year

}

Chó ý viÖc sö dông to¸n tö this ®Ó g¸n gi¸ trÞ cho c¸c thuéc tÝnh cña ®èi tîng ph¶i th«ng qua c¸c tham sè cña hµm.

VÝ dô, b¹n cã thÓ t¹o mét ®èi tîng míi kiÓu car nh sau:

mycar = new car(“Eagle”,”Talon TSi”,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. Khi ®ã gi¸ trÞ cña mycar.make lµ “Eagle”, gi¸ trÞ cña mycar.model lµ “Talon TSi”, vµ mycar.year lµ mét sè nguyªn 1993....Cø nh vËy b¹n cã thÓ t¹o ra nhiÒu ®èi tîng kiÓu car.

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 ®èi t-îng. VÝ dô b¹n ®Þnh nghÜa thªm mét ®èi tîng kh¸c lµ person nh sau:

function person(name, age, sex){

this.name=name

this.age=age

this.sex=sex

}

Khoa Toan tin, §¹i häc Quèc gia Hµ Néi

Page 75: ch¬ng 1 Lêi nãi ®Çu - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../file_goc_775961.pdf · Khoa Toan tin, §¹i häc Quèc gia Hµ Néi. JavaScript

JavaScript 75

Vµ sau ®ã ta t¹o ra hai ngêi míi:

rank = new person(“Rank McKinnon”,33,”M”)

ken = new person(“Ken John”,39,”M”)

B©y giê b¹n ®Þnh nghÜa l¹i hµm x©y dùng car nh sau:

function car(make, model, year,owner ){

this.make = make

this.model = model

this.year = year

this.owner = owner

}

Nh vËy b¹n cã thÓ t¹o ®èi tîng kiÓu car míi:

car1 = new car(“Eagle”,”Talon TSi”,1993,rank)

car2 = new car(“Nissan”,”300ZX”,1992,ken)

Nh vËy, thay v× ph¶i qua mét x©u ký tù hay mét gi¸ trÞ sè khi t¹o ®èi tîng, 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. 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.owner.name

Chó ý r»ng b¹n còng cã thÓ t¹o ra mét thuéc tÝnh míi cho ®èi tîng tríc khi ®Þnh nghÜa nã, vÝ dô:

car1.color=”black”

Nh vËy, thuéc tÝnh color cña ®èi tîng car1 ®îc g¸n lµ “black”. Tuy nhiªn, 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. 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.

5.1.3. LËp môc lôc cho c¸c thuéc tÝnh cña ®èi tîng

Trong Navigator 2.0, b¹n cã thÓ gäi thuéc tÝnh cña mét ®èi tîng b»ng tªn thuéc tÝnh hoÆc b»ng sè thø tù cña nã. Tuy nhiªn tõ Navigator 3.0 trë ®i, nÕu ban ®Çu b¹n ®Þnh nghÜa mét thuéc tÝnh b»ng tªn cña nã, b¹n sÏ lu«n lu«n ph¶i gäi nã b»ng tªn, vµ nÕu b¹n ®Þnh nghÜa mét thuéc tÝnh b»ng chØ sè th× b¹n còng lu«n lu«n ph¶i gäi tíi nã b»ng chØ sè.

§iÒu nµy øng dông khi b¹n t¹o mét ®èi tîng víi nh÷ng thuéc tÝnh cña chóng b»ng hµm x©y dùng (nh vÝ dô vÒ kiÓu ®èi tîng car ë phÇn tríc) vµ khi b¹n ®Þnh nghÜa nh÷ng thuéc tÝnh cña riªng mét ®èi tîng (nh mycar.color=”red”). V× vËy nÕu b¹n ®Þnh nghÜa c¸c thuéc tÝnh cña ®èi tîng ngay tõ ®Çu b»ng chØ sè nh mycar[5]=”25 mpg”, b¹n cã thÓ lÇn lît gäi tíi c¸c thuéc tÝnh kh¸c nh mycar[5].

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. B¹n 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. VÝ dô thÎ <FORM> thø hai trong mét document cã thuéc tÝnh NAME lµ “myform” th× b¹n cã thÓ gäi tíi form ®ã b»ng document.form[1] hoÆc document.form[“myForm”] hoÆc document.myForm

Khoa Toan tin, §¹i häc Quèc gia Hµ Néi

Page 76: ch¬ng 1 Lêi nãi ®Çu - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../file_goc_775961.pdf · Khoa Toan tin, §¹i häc Quèc gia Hµ Néi. JavaScript

JavaScript 76

5.1.4. §Þnh nghÜa thªm c¸c thuéc tÝnh cho mét kiÓu ®èi tîng

B¹n cã thÓ thªm thuéc tÝnh cho mét kiÓu ®èi tîng ®· ®îc ®Þnh nghÜa tríc b»ng c¸ch sö dông thuéc tÝnh property. 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.VÝ dô sau thùc hiÖn thªm thuéc tÝnh color cho tÊt c¶ c¸c ®èi tîng kiÓu car, sau ®ã g¾n mét gi¸ trÞ mµu cho thuéc tÝnh color cña ®èi tîng car1:

car.prototype.color=null

car1.color=”red”

5.1.5. §Þnh nghÜa c¸c c¸ch thøc

Mét c¸ch thøc lµ mét hµm ®îc liªn kÕt víi mét ®èi tîng. B¹n ®Þnh nghÜa mét c¸ch thøc còng cã nghÜa lµ b¹n ®Þnh nghÜa mét hµm chuÈn. B¹n cã thÓ sö dông có ph¸p sau ®Ó g¾n mét hµm cho mét ®èi tîng ®ang tån t¹i:

object.methodname = function_name

Trong ®ã object lµ ®èi tîng ®ang tån t¹i, methodname lµ tªn c¸ch thøc vµ function_name lµ tªn hµm

B¹n cã thÓ gäi c¸ch thøc nµy tõ ®èi tîng nh sau:

object.methodname(<tham sè>)

B¹n cã thÓ ®Þnh nghÜa c¸ch thøc cho mét kiÓu ®èi tîng b»ng c¸ch ®a c¸ch thøc ®ã vµo trong hµm x©y dùng ®èi tîng. VÝ dô b¹n 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.year+ “ ”+ this.make + “ ”+ this.model

document.write(result)

}

B¹n cã thÓ thªm c¸ch 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.displayCar= displayCar;

Nh vËy cã thÓ ®Þnh nghÜa l¹i ®èi tîng car nh sau:

function car(make, model, year,owner ){

this.make = make

this.model = model

this.year = year

this.owner = owner

this.displayCar= displayCar

}

Sau ®ã, b¹n cã thÓ gäi c¸ch thøc displayCar ®èi víi mçi ®èi tîng:

car1.displayCar()

car2.displayCar()

Khoa Toan tin, §¹i häc Quèc gia Hµ Néi

Page 77: ch¬ng 1 Lêi nãi ®Çu - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../file_goc_775961.pdf · Khoa Toan tin, §¹i häc Quèc gia Hµ Néi. JavaScript

JavaScript 77

5.1.6. Sö dông cho c¸c tham chiÕu ®èi tîng (Object References)

JavaScript cã mét tõ kho¸ ®Æc biÖt lµ this mµ b¹n cã thÓ sö dông nã cïng víi mét c¸ch thøc ®Ó gäi tíi ®èi tîng hiÖn thêi. VÝ dô, gi¶ sö b¹n cã mét hµm validate dïng ®Ó x¸c nhËn gi¸ trÞ thuéc tÝnh cña mét ®èi tîng n»m trong mét kho¶ng nµo ®ã:

function validate(obj, lowval, hival){

if ( (obj.value<lowdate)||(obj.value>hival) )

alert(“Invalid value!”)

}

Sau ®ã b¹n cã thÓ gäi hµm validate tõ mçi thÎ sù kiÖn onChange:

<INPUT TYPE=”TEXT” NAME=”AGE” SIZE=3 onChange=”validate(this,18,99)” >

Khi liªn kÕt víi mét thuéc tÝnh form, tõ kho¸ this cã thÓ gäi tíi form cha cña ®èi t-îng hiÖn thêi. Trong vÝ dô sau, myForm cã chøa ®èi tîng Text vµ mét nót bÊm. Khi ngêi sö dông kÝch vµo nót bÊm, trêng text sÏ hiÓn thÞ tªn form. ThÎ sù kiÖn onClick cña nót bÊm sö dông this.form ®Ó gäi tíi form cha lµ myForm.

<FORM NAME=”myForm”>

Form name:<INPUT TYPE=”text” NAME=”text1” VALUE=”Beluga”>

<P>

<INPUT TYPE=”button” NAME=”button1”

value=”Show Form Name” onClick=”this.form.text1.value=this.form.name”>

</FORM>

5.1.7. Xo¸ ®èi tîng

Trong JavaScript cho Navigator 2.0, b¹n kh«ng thÓ xo¸ c¸c ®èi tîng-chóng vÉn tån t¹i trong khi b¹n ®· rêi khái trang ®ã. Trong khi JavaScript cho Navigator 3.0 cho phÐp b¹n 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). JavaScript sÏ ®ãng ®èi tîng ®ã ngay lËp tøc th«ng qua biÓu thøc g¸n.

Khoa Toan tin, §¹i häc Quèc gia Hµ Néi

Page 78: ch¬ng 1 Lêi nãi ®Çu - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../file_goc_775961.pdf · Khoa Toan tin, §¹i häc Quèc gia Hµ Néi. JavaScript

JavaScript 78

6. B¶ng tæng kÕt c¸c tõ kho¸Sau ®©y lµ c¸c tõ ®ùoc ®Þnh nghÜa lµ mét phÇn trong ng«n ng÷ JavaScript vµ kh«ng ®îc sö dông lµ tªn biÕn:

abstract eval int static

boolean extends interface super

break false long switch

byte final native synchrinized

case finally new this

catch float null throw

char for package throws

class function parseFloat transient

const goto parseInt true

continue if private try

default implements protected var

do import public void

double in return while

else instanceof short with

Khoa Toan tin, §¹i häc Quèc gia Hµ Néi

Page 79: ch¬ng 1 Lêi nãi ®Çu - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../file_goc_775961.pdf · Khoa Toan tin, §¹i häc Quèc gia Hµ Néi. JavaScript

JavaScript 79

7. Tæng kÕtNh vËy, tµi liÖu kh«ng nh÷ng ®· giíi thiªu s¬ qua vÒ JavaScript, mµ nã cßn lµ s¸ch tham kh¶o hÕt søc h÷u Ých ®Ó ph¸t triÓn øng dông cña b¹n.

B¹n cã thÓ tham kh¶o toµn diÖn JavaScript trong quyÓn Teach Yourself JavaScript in 14 Days, hoÆc JavaScript Guide

Do JavaScript lµ ng«n ng÷ cßn míi vµ cã sù thay ®æi nhanh chãng, b¹n nªn ®Õn víi trang Web cña h·ng Netscape ( http://www.netscape.com ) ®Ó cã c¸c th«ng tin míi nhÊt vÒ ng«n ng÷ nµy.

Khoa Toan tin, §¹i häc Quèc gia Hµ Néi