[r]
Trang 1Giáo trình JavaScript
……… , tháng … năm …….
Trang 2Giá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 <NOSẻ cript> và </NOSCRIPT> 6
2.3 Hi n th m t dòng textể ị ộ 7
2.4 Giao ti pế v i nớ g− 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 (OP Ử ERATOR) 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 23
Trang 3CÁC CÂU LỆNH THAO TÁC TRÊN Đ I Ố T− NG Ợ 23
3.1.5 for in 23
3.1.6 new 25
3.1.7 this 26
3.1.8 with 27
CÁC HÀM (FUNCTIONS) 28
CÁC HÀM CÓ S N Ẵ 30
3.1.9 eval 30
3.1.10 parseInt 31
3.1.11 parseFloat 32
M NG ( Ả ARRAY) 33
SỰ KI N Ệ 35
BÀI T P Ậ 38
3.1.12 Câu hỏi 38
3.1.13 Tr l iả ờ 40
4 CÁC Đ I T Ố − NG TRONG JA Ợ VASCRIPT 43
Đ I T Ố − NG NAVIG Ợ ATOR 45
Đ I T Ố − NG Ợ WINDOW 46
4.1.1 Các thu c tínộ h 46
4.1.2 Các ph− ng ơ th cứ 47
4.1.3 Các ch− ng trình x lý sơ ử ự ki n ệ 48 Đ I T Ố − NG LOC Ợ ATION 48
Đ I T Ố − NG Ợ FRAME 49
4.1.4 Các thu c tínộ h 49
4.1.5 Các ph− ng ơ th cứ 49
4.1.6 S d ng Frameử ụ 49
Đ I T Ố − NG DOCU Ợ MENT 51
4.1.7 Các thu c tínộ h 52
4.1.8 Các ph− ng ơ th cứ 52
Đ I T Ố − NG ANC Ợ HORS 52
Đ I T Ố − NG FOR Ợ MS 53
4.1.9 Các thu c tínộ h 53
4.1.10 Các ph− ng ơ th cứ 53
4.1.11 Các ch− ng trình x lý sơ ử ự ki n ệ 53 Đ I T Ố − NG HISTORY Ợ 54
4.1.12 Các thu c tínộ h 54
4.1.13 Các ph− ng ơ th cứ 54
Đ I T Ố − NG Ợ LINKS 54
Trang 44.1.14 Các thu c tínộ h 54
4.1.15 Các ch− ng trình x lý sơ ử ự ki n ệ 55 Đ I T Ố − NG Ợ MATH 55
4.1.16 Các thu c tínộ h 55
4.1.17 Các ph− ng ơ th cứ 55
Đ I T Ố − NG Ợ DATE 56
4.1.18 Các ph− ng ơ th cứ 56
Đ I T Ố − NG STRIN Ợ G 57
4.1.19 Các ph− ng ơ th cứ 57
CÁC PHẦN T Ử C A Đ I T Ủ Ố − NG Ợ FORM 58
4.1.20 Thu c tính typeộ 59
4.1.21 Ph n t buttonầ ử 59
4.1.22 Ph n t checkboxầ ử 60
4.1.23 Ph n t File Uploadầ ử 62
4.1.24 Ph n t hiddenầ ử 62
4.1.25 Ph n t Pầ ử assword 62
4.1.26 Ph n t radầ ử io 63
4.1.27 Ph n t rầ ử eset 65
4.1.28 Ph n t selectầ ử 65
5 MÔ HÌNH ĐỐI T− NG (OBJECT Ợ MODEL) 75
Đ I T Ố − NG VÀ THU Ợ ỘC TÍNH 75
T O CÁC Ạ Đ I T Ố − NG Ợ M I Ớ 76
5.1.1 S d ng kh iử ụ ở t o đ i tạ ố − nợ g 76
5.1.2 S d ng m tử ụ ộ hàm xây d ng(Coự nstructor Function) 77
5.1.3 L p mậ ục l cụ cho các thuộc tính của đ iố t− ngợ 78
5.1.4 Đ nh ị nghĩa thêm các thuộc tính cho m tộ ki u ể đ i tố − nợ g 79
5.1.5 Đ nh nghĩaị các cách th cứ 79
5.1.6 S d ng choử ụ các tham chi u đ i tế ố − ng (Objeợ ct References) 80
5.1.7 Xoá đ i tố − ngợ 80
6 B NG T NG K T CÁC Ả Ổ Ế TỪ KHOÁ 81
7 T NG Ổ K T Ế 82
Trang 5CH− 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, n ồ ữ h−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 n ể ứ ự ệ h− 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 clie ớ nt 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 HT ế ML c a mình ủ
Trang 65.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, t ờ ử ụ ấ r− 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 c ể ọ ớ ha 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.
Trang 76 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
char for package throws
class function parseFloat transient
const goto parseInt true
continue if private try
default implements protected var
else instanceof short with
Trang 8Khoa Toan tin, §¹i häc Quèc gia Hµ Néi h ttp://www.eboo k e d u vn
7 TỔNG KẾT
Nh− 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 ề ữ