Xem mẫu

  1. Giáo trình JavaScript
  2. JavaScript 1 Gi¸o tr×nh JavaScript *** ch−¬ng 1 Lêi nãi ®Çu................................................................................................................ 4 Ch−¬ng 2 NhËp m«n JavaScript ........................................................................................... 5 2.1.Nhóng JavaScript vμo file HTML...................................................................................... 5 2.3. ThÎ vμ ................................................................................. 6 2.3. HiÓn thÞ mét dßng text ..................................................................................................... 7 2.4. Giao tiÕp víi ng−êi sö dông............................................................................................. 9 2.5. §iÓm l¹i c¸c lÖnh vμ më réng ........................................................................................ 12 Ch−¬ng 3 BiÕn trong JavaScript ...................................................................................... 13 3.1. BiÕn vμ ph©n lo¹I biÕn ................................................................................................... 13 3.2. BiÓu diÔn tõ tè trong JavaScript .................................................................................... 13 3.3. KiÓu d÷ liÖu.................................................................................................................... 13 1.1.1. KIÓu nguyªn (Interger).......................................................................................... 14 1.1.2. KiÓu dÊu phÈy ®éng (Floating Point) .................................................................... 14 1.1.3. KiÓu logic (Boolean) ............................................................................................. 15 1.1.4. KiÓu chuçi (String) ................................................................................................ 15 2. X©y dùng c¸c biÓu thøc trong JavaScript .................................................... 16 ®Þnh nghÜa vμ ph©n lo¹I biÓu thøc .................................................................................... 16 C¸c to¸n tö (operator)........................................................................................................ 16 2.1.1. G¸n ....................................................................................................................... 16 2.1.2. So s¸nh................................................................................................................. 16 2.1.3. Sè häc................................................................................................................... 17 2.1.4. Chuçi .................................................................................................................... 17 2.1.5. Logic ..................................................................................................................... 17 2.1.6. Bitwise .................................................................................................................. 18 Bμi tËp .......................................................................................................................................... 19 2.1.7. C©u hái ................................................................................................................. 19 2.1.8. Tr¶ lêi.................................................................................................................... 19 3. C¸c lÖnh ........................................................................................................................ 20 C©u lÖnh ®iÒu kiÖn................................................................................................................... 20 C©u lÖnh lÆp.............................................................................................................................. 21 3.1.1. Vßng lÆp for .......................................................................................................... 21 3.1.2. while...................................................................................................................... 22 3.1.3. Break .................................................................................................................... 22 3.1.4. continue ................................................................................................................ 22 Khoa Toan tin, §¹i häc Quèc gia Hμ Néi
  3. JavaScript 2 C¸c c©u lÖnh thao t¸c trªn ®èi t−îng ......................................................................... 23 3.1.5. for...in.................................................................................................................... 23 3.1.6. new ....................................................................................................................... 24 3.1.7. this ........................................................................................................................ 26 3.1.8. with ....................................................................................................................... 26 C¸c hμm (Functions)............................................................................................................... 27 C¸c hμm cã s½n ........................................................................................................................ 29 3.1.9. eval ....................................................................................................................... 29 3.1.10. parseInt................................................................................................................. 30 3.1.11. parseFloat............................................................................................................. 31 M¶ng (Array) ............................................................................................................................. 32 Sù kiÖn ......................................................................................................................................... 34 Bμi tËp .......................................................................................................................................... 37 3.1.12. C©u hái ................................................................................................................. 37 3.1.13. Tr¶ lêi.................................................................................................................... 39 4. C¸c ®èi t−îng trong JavaScript ....................................................................... 42 §èi t−îng navigator ............................................................................................................. 44 §èi t−îng window................................................................................................................... 45 4.1.1. C¸c thuéc tÝnh....................................................................................................... 45 4.1.2. C¸c ph−¬ng thøc .................................................................................................. 46 4.1.3. C¸c ch−¬ng tr×nh xö lý sù kiÖn.............................................................................. 47 §èi t−îng location................................................................................................................ 47 §èi t−îng frame...................................................................................................................... 48 4.1.4. C¸c thuéc tÝnh....................................................................................................... 48 4.1.5. C¸c ph−¬ng thøc .................................................................................................. 48 4.1.6. Sö dông Frame ..................................................................................................... 48 §èi t−îng document ............................................................................................................. 50 4.1.7. C¸c thuéc tÝnh....................................................................................................... 51 4.1.8. C¸c ph−¬ng thøc .................................................................................................. 51 §èi t−îng anchors ................................................................................................................ 51 §èi t−îng forms ..................................................................................................................... 52 4.1.9. C¸c thuéc tÝnh....................................................................................................... 52 4.1.10. C¸c ph−¬ng thøc .................................................................................................. 52 4.1.11. C¸c ch−¬ng tr×nh xö lý sù kiÖn.............................................................................. 52 §èi t−îng history .................................................................................................................. 53 4.1.12. C¸c thuéc tÝnh....................................................................................................... 53 4.1.13. C¸c ph−¬ng thøc .................................................................................................. 53 §èi t−îng links ........................................................................................................................ 53 Khoa Toan tin, §¹i häc Quèc gia Hμ Néi
  4. JavaScript 3 4.1.14. C¸c thuéc tÝnh....................................................................................................... 53 4.1.15. C¸c ch−¬ng tr×nh xö lý sù kiÖn.............................................................................. 54 §èi t−îng Math ........................................................................................................................ 54 4.1.16. C¸c thuéc tÝnh....................................................................................................... 54 4.1.17. C¸c ph−¬ng thøc .................................................................................................. 54 §èi t−îng Date......................................................................................................................... 55 4.1.18. C¸c ph−¬ng thøc .................................................................................................. 55 §èi t−îng String..................................................................................................................... 56 4.1.19. C¸c ph−¬ng thøc .................................................................................................. 56 C¸c phÇn tö cña ®èi t−îng Form...................................................................................... 57 4.1.20. Thuéc tÝnh type ..................................................................................................... 58 4.1.21. PhÇn tö button ...................................................................................................... 58 4.1.22. PhÇn tö checkbox ................................................................................................. 59 4.1.23. PhÇn tö File Upload .............................................................................................. 61 4.1.24. PhÇn tö hidden ..................................................................................................... 61 4.1.25. PhÇn tö Password ................................................................................................ 61 4.1.26. PhÇn tö radio ........................................................................................................ 62 4.1.27. PhÇn tö reset ........................................................................................................ 64 4.1.28. PhÇn tö select ....................................................................................................... 64 5. M« h×nh ®èi t−îng (Object Model) ..................................................................... 74 §èi t−îng vμ thuéc tÝnh ...................................................................................................... 74 T¹o c¸c ®èi t−îng míi .......................................................................................................... 75 5.1.1. Sö dông khëi t¹o ®èi t−îng................................................................................... 75 5.1.2. Sö dông mét hμm x©y dùng(Constructor Function).............................................. 76 5.1.3. LËp môc lôc cho c¸c thuéc tÝnh cña ®èi t−îng ..................................................... 77 5.1.4. §Þnh nghÜa thªm c¸c thuéc tÝnh cho mét kiÓu ®èi t−îng....................................... 78 5.1.5. §Þnh nghÜa c¸c c¸ch thøc ..................................................................................... 78 5.1.6. Sö dông cho c¸c tham chiÕu ®èi t−îng (Object References)............................... 79 5.1.7. Xo¸ ®èi t−îng ....................................................................................................... 79 6. B¶ng tæng kÕt c¸c tõ kho¸ .................................................................................. 80 7. Tæng kÕt ........................................................................................................................ 81 Khoa Toan tin, §¹i häc Quèc gia Hμ Néi
  5. JavaScript 4 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
  6. JavaScript 5 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Î • 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Î ... 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Î Chó ý: vμ . C¸c thÎ cã thÓ xuÊt hiÖn trong phÇn hay cña file HTML. NÕu Ghi chó kh«ng ®−îc ®Æt trong cÆp thÎ ®Æt trong phÇn , nã sÏ ®−îc t¶i vμ s½n sμng tr−íc khi nh− ghi phÇn cßn l¹i cña v¨n b¶n ®−îc t¶i. chó trong file HTML. Có ph¸p cña Thuéc tÝnh duy nhÊt ®−îc ®Þnh nghÜa hiÖn thêi cho thÎ JavaScript t−¬ng lμ “LANGUAGE=“ dïng ®Ó x¸c ®Þnh ng«n ng÷ tù có ph¸p cña C nªn cã thÓ sö dông script ®−îc sö dông. Cã hai gi¸ trÞ ®−îc ®Þnh nghÜa lμ // hay /* ... */. "JavaScript" vμ "VBScript". Víi ch−¬ng tr×nh viÕt b»ng JavaScript b¹n sö dông có ph¸p sau : // INSERT ALL JavaScript HERE §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: 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
  7. JavaScript 6 2.1.2. Sö dông mét file nguån JavaScript Thuéc tÝnh SRC cña thÎ 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: .... 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Î vμ 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Î vμ : 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ú Chó ý thÎ HTML nμo. Chóng chØ ®−îc chøa c¸c c©u lÖnh JavaScript vμ ®Þnh nghÜa hμm. Khi b¹n muèn chØ ra mét x©u trÝch dÉn trong Tªn file cña c¸c hμm JavaScript bªn ngoμi cÇn cã ®u«i mét x©u kh¸c cÇn sö .js, vμ server sÏ ph¶i ¸nh x¹ ®u«i .js ®ã tíi kiÓu MIME dông dÊu nh¸y ®¬n ( ' ) ®Ó ph©n ®Þnh x©u ®ã. application/x-javascript. §ã lμ nh÷ng g× §iÒu nμy cho phÐp mμ server göi trë l¹i phÇn Header cña file HTML. §Ó script nhËn ra x©u ký ¸nh x¹ ®u«i nμy vμo kiÓu MIME, ta thªm dßng sau vμo tù ®ã. 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(" ") } 2.3. ThÎ vμ 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Î 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Î 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
  8. JavaScript 7 VÝ dô: 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! H·y kÝch chuét vμo ®©y ®Ó t¶i vÒ phiªn b¶n Netscape míi h¬n 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 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
  9. JavaScript 8 §è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 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 Ouputting Text This text is plain. Khoa Toan tin, §¹i häc Quèc gia Hμ Néi
  10. JavaScript 9 VÝ dô: Sù kh¸c nhau cña write() vμ writeln(): 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ô: Khoa Toan tin, §¹i häc Quèc gia Hμ Néi
  11. JavaScript 10 alert("NhÊn vμo OK ®Ó tiÕp tôc"); 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 JavaScript Exemple var name=window.prompt( Hello! What s your name ? , ); document.write( Hello + name + ! I hope you like JavaScript ); Khoa Toan tin, §¹i häc Quèc gia Hμ Néi
  12. JavaScript 11 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
  13. JavaScript 12 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 Gi÷ ®Þa chØ cña file JavaScript bªn ngoμi. File nμy cña thÎ ph¶i cã phÇn ®u«i .js SCRIPT LANGUAGE thuéc tÝnh §Þnh râ ng«n ng÷ script ®−îc sö dông (JavaScript cña thÎ hoÆc VBScript) 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 document.write() c¸ch thøc XuÊt ra mét x©u trªn cöa sæ hiÖn thêi mét c¸ch JavaScript tuÇn tù theo file HTML cã ®o¹n script ®ã document.writeln() C¸ch thøc T−¬ng tù c¸ch thøc document.write() nh−ng viÕt JavaScript xong tù xuèng dßng. alert() C¸ch thøc HiÓn thÞ mét dßng th«ng b¸o trªn hép héi tho¹i cña JavaScript promt() C¸ch thøc HiÓn thÞ mét dßng th«ng b¸o trong hép héi tho¹i JavaScript ®å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
  14. JavaScript 13 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 Chó ý ®©y lμ c¸c vÝ dô vÒ tõ tè: Kh¸c víi C, 8 trong JavaScript kh«ng cã kiÓu “The dog ate my shoe” h»ng sè CONST ®Ó true biÓu diÔn mét gi¸ trÞ kh«ng ®æi nμo ®Êy 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: Datatype Example var fruit='apples'; var numfruit=12; numfruit = numfruit + 20; var temp ="There are " + numfruit + " " + "."; document.write(temp); Khoa Toan tin, §¹i häc Quèc gia Hμ Néi
  15. JavaScript 14 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
  16. JavaScript 15 §Ó 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
  17. JavaScript 16 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 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
  18. JavaScript 17 == 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
  19. JavaScript 18 expr1 || expr2 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. ! 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: >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 Khoa Toan tin, §¹i häc Quèc gia Hμ Néi
  20. JavaScript 19 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 = 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