Tài liệu JAVASCRIPT
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ø ch-a 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, nh-ng 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
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
Chó ý:
Ghi chó kh«ng ®-îc
®Æt trong cÆp thÎ
<- vµ -> nh- ghi
®Æ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.
chó
HTML. Có ph¸p cña
JavaScript t-¬ng
tù có ph¸p cña C
nªn cã thÓ sö dông
// hay /* ... */.
trong
file
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
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ô:
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.
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 ®ã.
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
§iÒu
nµy
cho
phÐp
script nhËn ra x©u ký
tù ®ã.
file mime.typestrong ®-ê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
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
JavaScript
5
§èi t-îng documenttrong 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 nh-ng kh«ng xuèng dßng, cßn c¸ch thøc writeln()
sau khi viÕt xong dßng Text tù ®éng xuèng dßng. 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
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
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ô ch-a 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ø ch-a
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, nh-ng ngoµi ra nã cßn cung cÊp mét tr-êng ®Ó
nhËp d÷ liÖu vµo. Ng-êi sö dông cã thÓ nhËp vµo tr-êng ®ã råi kÝch vµo OK. Khi ®ã, ta cã
thÓ xö lý d÷ liÖu do ng-êi sö dông võa ®-a vµo.
VÝ dô: Hép héi tho¹i gåm mét dßng th«ng b¸o, mét tr-êng nhËp d÷ liÖu, mét nót OK vµ
mét nót Cancel
Ch-¬ng tr×nh nµy sÏ hái tªn ng-êi dïng vµ sau ®ã sÏ hiÓn thÞ mét th«ng b¸o ng¾n sö dông
tªn míi ®-a vµo. VÝ dô ®-îc l-u vµo file Hello.html
<HTML>
<HEAD>
<TITLE> JavaScript 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
JavaScript
8
Khi duyÖt cã kÕt qu¶:
H×nh2.1: HiÓn thÞ cöa sæ nhËp tªn
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.
H×nh 2.2: HiÓn thÞ lêi chµo ng-êi nhËp
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
JavaScript
9
2.5. §iÓm l¹i c¸c lÖnh vµ më réng
LÖnh/Më réng
SCRIPT
KiÓu
thÎ HTML
M« t¶
Hép chøa c¸c lÖnh JavaScript
Thuéc tÝnh
cña thÎ
Gi÷ ®Þa chØ cña file JavaScript bªn ngoµi. File nµy
ph¶i cã phÇn ®u«i .js
SRC
SCRIPT
thuéc tÝnh
cña thÎ
§Þnh râ ng«n ng÷ script ®-îc sö dông (JavaScript
hoÆc VBScript)
LANGUAGE
SCRIPT
Ghi chó trong §¸nh dÊu ghi chó mét dßng trong ®o¹n script
JavaScript
//
Ghi chó trong §¸nh dÊu ghi chó mét khèi trong ®o¹n script
JavaScript
/*...*/
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.write()
document.writeln()
alert()
C¸ch thøc
JavaScript
T-¬ng tù c¸ch thøc document.write() nh-ng viÕt
xong tù xuèng dßng.
C¸ch thøc
cña
HiÓn thÞ mét dßng th«ng b¸o trªn hép héi tho¹i
JavaScript
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.
promt()
Khoa Toan tin, §¹i häc Quèc gia Hµ Néi
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 nh-ng 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è:
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Þ kh«ng
®æi nµo ®Êy
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
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:
H×nh 3.1: KÕt qu¶ cña xö lý d÷ liÖu
• 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
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
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øc
TË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
x = x + y
KiÓu g¸n rót gän
x + = y
x = x - y
x = x * y
x = x / y
x = x % y
x - = y
x * = y
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
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:
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
To¸n tö nµy t¨ng var lªn 1 (cã thÓ biÓu diÔn lµ ++var)
To¸n tö nµy gi¶m var ®i 1 (cã thÓ biÓu diÔn lµ --var)
var1% var2
-
var++
var--
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.
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.
Khoa Toan tin, §¹i häc Quèc gia Hµ Néi
JavaScript
15
expr1 || expr2
! expr
Lµ to¸n tö logic OR, tr¶ l¹i gi¸ trÞ ®óng nÕu Ýt nhÊt
mét trong hai expr1 vµ expr2 ®óng.
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
x = x << y
KiÓu bitwise rót gän
x << = y
x = x >> y
x - >> y
x >>> = y
x & = y
x ^ = y
x = x >>> y
x = x & y
x = x ^ y
x = x | y
x | = y
Khoa Toan tin, §¹i häc Quèc gia Hµ Néi
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
JavaScript
17
3. C¸c lÖnh
Cã 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Ön
C©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.”);
Chó ý
Ký tù { vµ } ®-îc sö dông ®Ó t¸ch c¸c khèi m·.
Khoa Toan tin, §¹i häc Quèc gia Hµ Néi
JavaScript
18
C©u lÖnh lÆp
C©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:
• 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
J
9
H×nh 5.1: KÕt qu¶ cña lÖnh for...loop
VÝ dô nµy l-u 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
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 nh-ng 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-îng
JavaScript 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
Tải về để xem bản đầy đủ
Bạn đang xem 20 trang mẫu của tài liệu "Tài liệu JAVASCRIPT", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
File đính kèm:
- tai_lieu_javascript.doc