Một số khái niệm cơ bản se Ngôn ngữ kịch bản 5 Dạng ngôn ngữ lập trình cấp cao s Ngôn ngữ thông dịch, mã lệnh được thông dịch trực tiếp ngay khi thực thi. - Ngôn ngữ biên dịch sẽ dịch mã nguồn sang mã máy, hay mã trung gian trước khi thực thi. s Các ngôn ngữ script thông dụng e JavaScript, VBScript, ASP, PHP, JSP, ActionScript. Một số khái niệm cơ bản s Ngôn ngữ kịch bản trên server (server-side scripting) « Công nghệ thực thi trên web server dùng để xử lý các yêu cầu của user bằng cách tạo ra các trang HTML động chứa kết quả xử lý trả vê cho user s Ngôn ngữ phía server thường cung cấp khả năng tương tác với CSDL 5 Các ngôn ngữ phổ bién: CGI, Cold Fusion, ASP, ASP.NET, PHP, JSP.
Một số khái niệm cơ bản s Ngôn ngữ kịch bản trên client (client-side scripting) e Ngôn ngữ thực thi trên trình duyệt, phía client. Dùng để xử lý các yêu câu của người dùng. e Cac ma lệnh được nhúng vào HTML hay file riêng. User hoàn toàn có thể xem source code của ngôn ngữ kịch bản phía client.
e JavaScript va VbScript là hai ngôn ngữ script thông dụng hiện nay. JavaScript - tổng quan s JS là ngôn ngữ script ở client, dùng dé xử lý và tương tác với các thành phân HTML. s JS là dạng ngôn ngữ thông dịch s JS không liên quan đến ngôn ngữ java s JS được phát triển bởi Netscape 5 Chỉ thực thi trên trình duyệt e Không có đầy đủ tính năng của ngôn ngữ lập trình 5 Cú pháp đơn giản, gân giống với ngôn ngữ C JavaScript - tổng quan JS có thể làm được gi? 5 Cung cấp cho người thiết kế HTML công cụ lập trình e Cho phép dat đoạn văn bản động vào trang web e Có thể tác động các sự kiện trong trang HTML s Có thể đọc/ghi các thành phần của HTML e Dung dé check di liệu từ người dùng e Cé thé check phién ban trình duyệt e Co thé thao tác cookie của trang web. JavaScript - tổng quan se Các bước thực thi của JS 1.
yi RB WN Trinh duyét tai trang web vé. Trinh duyét kiểm tra xem có mã JS trong web hay không Nếu có, trình duyệt sẽ chuyển mã JS cho bộ thông dịch .- Bộ thông dịch xử lý và thực thi các mã lệnh JS Các mã lệnh có thể tác động đến các thành phần của trang web. Trinh duyệt hiển thị toàn bộ nội dung web. JavaScript - tổng quan se Cách đặt mã lệnh JS vào trang web e Internal: dat trong head hay body <head> <script type="text/javascript"> </script> </head> <body> <script type="text/javascript"> </script> </body> JavaScript - tổng quan se Cách đặt mã lệnh JS vào trang web e External: tao tap tin bên ngoài và liên kết tập tin đó trong phân head.
<head> <script src="YourJsFile.js"></script> </head> Toán tử (operator) se Các toán tử toán học y=5 Toán tử Mô tả Ví dụ Kết quả + Cộng (addition) x=y+2 x=7 - Tru (Subtraction) x=y-2 x=3 sỉ Nhân (multiplication) =y*2 x=10 / Chia (division) x=y/2 x=2.5 % Chia lấy dư (modulus) x=y%2 x=1 er Tang (increment) X=++y x=6 -- Giam (decrement) =--y X= 10 Toán tử (operator) se Các toán tử gán Toán tử Ví dụ Tương tự với = X=y += x†+=y X=xty -= X-=y X=X-y ae x*=y X=x*y /= x/=y x=x/y %= x%=y X=x%y 11 Toán tử (operator) e Các toán tử so sánh Toán tử Mô tả Ví dụ == bang x==8 ar bằng (so sánh vừa giá trị vừa kiểu biến) | x=== Ec không bằng xI=8 > lớn hơn x>8 < nhỏ hơn x<8 Se lon hon hay bang x>=8 “= nhỏ hơn hay bằng x<=8 12 Toán tử (operator) s Toán tử logic Toán tử Mô tả Ví dụ && and (x < 10 && y > 1)> true || or (x==5 || y==5) 7 false | not l(x==y) > true e Toan tt diéu kién Cú pháp: variablename=(condition)2value1:value2 Vi du: greeting=(visitor=="PRES")?"Dear President ":"Dear "; Điều kiện đúng chọn valuel, ngược lại chọn value2 13 Cấu trúc điều khiển e Cấu trúc điêu khiển If if (biều_thức_ điêu kiện_ 1) { /Ikhói lệnh được thực hiện néu biều thức 1 đúng; } else if (biéu_thurc_diéu_kién_2) { /Ikhối lệnh duoc thuc hién néu biéu thie 2 dung; } else { /Ikhối lệnh được thực hiện néu cả hai biêu thức trên đều không đúng; } Cấu trúc điều khiển se Cấu trúc điêu khiển switch switch (biêu thức. điều kiện) { case két_qua_1: //khéi lénh can thuc hién néu biéu_thtrc_diéu_kién bang két_qua_1; break; case két_qua_2: /Ikhói lệnh cần thực hiện néu biêu_ thức_ điều_ kiện bằng kết_ quả _2; break; default : /Ikhói lệnh cần thực hiện néu biểu _thức_ điều kiện cho ra một kết quả khác; 15 e Ww Cấu trúc điều khiển se Cấu trúc điêu khiển fÍor for (bt khởi tạo; bt_điêu kiện; bt_thay_ đồi giá _ trị) { /IKhối lệnh cần lặp; } for (biên in đôi tượng) { //Khéi lệnh cần lặp; } Var X; var mycars = ["Saab", "Volvo", "BMW'"]; for (x in mycars){ document.write(mycars[x]); } 16 Cấu trúc điều khiển se Cấu trúc điêu khiển while while (biêu thức. điêu_ kiện) { /Ikhối lệnh lặp cần thực hiện nếu /Ibiểêu thức: điều kiện trả về true; } e Cau trúc điều khiển do while do { /Ikhối lệnh lặp cần thực hiện } while (biểu thức, điều _ kiện); 17 Cấu trúc dữ liệu - biến e Khai bao biến Cu phap Vi du var <tén bién>: var n; n=1; var <tên biến> = <giá trị>; var s = “JavaScript string’; <tén bién> = <gia tri>; Pl = 3.14; se Cách đặt tên biến s Dùng các ký tự a.o, dấu gạch dưới “_, dấu '$ e Tên biến không trùng với từ khóa JS s Tên biến không bắt đâu bởi con số e Tên biến không có ký tự khoảng trắng Tên biến là case sensitive. 18 Hàm (function) s Hàm là khối câu lệnh với một danh sách tham số (hoặc không có tham số) e Trong JS cho phép hàm không tên s Hàm có thể trả về một giá trị function tên_hàm(đói_só 1, đối só _2) { /Icac cau lénh can thuc hién mdi khi ham được gọi; return gia_tri_can_tra_vé; 19 Hàm (function) Goi ham trong JS e Goi tén ham va truyén tương ứng các tham số vào ¢ VD: tén_ham(déi sé 1, d6i s6 2) e Khi goi ham khong nhất thiết phải truyền đủ các đối số khi định nghĩa hàm.
Nếu số đối số ít hơn khi định nghĩa hàm, khi đó những đối số không được truyền cho hàm sẽ mang gia tri undefined e Cac kiéu cơ ban sẽ được truyền vào hàm theo giá trị, đối tượng sẽ được chuyển vào hàm theo tham chiếu.write("x is a number"); else document.write("x is not a number"); Kiểm tra xem x có phải là con số không? 23 Khai báo sử dụng biến e Tầm vực của biến - = Khai báo biến toàn cục scope = "global"; function checkscope( ) { scope = "local"; “Ss _. Thay déi gia tri biến toàn cục document.write(scope); x Số động biển bàn các myscope = "local"; document.write(myscope); 24 Khai báo sử dụng biến e Tầm vực của biến var numberCars = 3; // global numberTrees = 15; // global 1ƒ (numberTrees > numberCars) { var numberRoads = 4; // global } else { var numberLakes = 9; // global, nhung ko định nghĩa do đoạn code ko làm. } function simpleFunction() { var colorCar ='blue'; //local colorTree = ‘green’; // global, chi khi ham được gọi if (colorCar != colorTree) { var colorRoad = ‘grey’; // local, tr dong nay } else { var colorLake = 'aqua; // local, nhưng ko định nghĩa do code ko làm. } 25 Đối tượng mảng (array object) e Mang trong JS là dạng đối tượng s Cách khai báo mảng 1 chiều Cách 1: regular array var myfriends=new Array(); myfriends[0]="John”; myfriends[1]="Bob"; myfriends[2]="Sue"; Cách 2: condensed array var myfriends=new Array("John", "Bob", "Sue") ; Cach 3: literal array var myfriends=["John", "Bob", "Sue"] ; 26 Đối tượng mảng (array object) s Khai báo mảng 2 chiêu e Mang 2 chiều được xem như mảng 1 chiều với mỗi phần tử của mảng 1 chiều này là một mảng 1 chiều khác s Ví dụ khai báo mảng 2 chiều 3x3 e Cachi1 var b = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]; var c = new Array(3); e Cach 2 n=; Chú ý: Các phần tử của for (E0, | < 3; I++) mảng không nhất thiết { phải cùng kiểu với nhau c[i] = new Array(3); Vi du: for (j=0; j < 3; j++) var c = [1, 2.2, “chudi’]; c[i][j] = ++dem; Đối tượng mảng (array object) s Các thuộc tính của đối tượng mảng Thuộc tính Mô tả Là thuộc tính đọc/ghi, cho biết số lượng phan tử của length mảng.
Có thể gán số lượng phần tử cho thuộc tính này để thay đổi kích thước của mảng (mảng động) Sử dụng thuộc tính này để thêm vào các thuộc tính prototype | mới hay phương thức mới cho đối tượng mảng var myfriends=["John", "Bob", "Sue"]; =3 document.length); Đối tượng mảng (array object) s Các phương thức của đối tượng mảng Phương thức Mô tả concat(value1,.) Nối các giá trị value1, value2. vào mảng hiện tại. Kêt quả trả vê một mảng mới chứa tât cả phân tử every(testfunction [thisobj]) (JS1.6, FireFox) Duyệt qua các phần tử của mảng, kiểm tra tất cả các phân tử có thoả điêu kiện được hàm testfunction hay không 2 Nêu thoả trả vê true, ngược lại trả vê false filter(testfunction [thisobj]) (JS1.6, FireFox) Lọc ra các phần tử thoả điều kiện được quy định trong ham testfunction testfunction(element, index, array){.} join([separator]) Chuyén tất cả các phần tử của mảng ra kiểu chuỗi và kêt chúng lại thành một chuôi dài chứa tât cả các phân tử 29 Đối tượng mảng (array object) s Các phương thức của đối tượng mảng Phương thức Mô tả indexOf(target, Tìm phần tử target trong mảng từ vị trí startlndex [startIndex]) dén vi tri cudi mang (JS1.6, FireFox) lastIndexOf(target, | Tim phan tt target trong mang tt vi tri startIndex [startIndex]) trở vê vị trí đầu mảng (JS1.6, FireFox) map(testfunction | Trả về một mảng mới với các phần tử được tính [thisobj]) toán lại từ hàm testfunction (JS1.6, FireFox) Trả về phần tử nằm cuối mảng và xoá phần tử đó pop() vn 3 ra khỏi mảng Thêm các phần tử vào cuối mảng, trả về số lượng push(value1, .) AC Ốc ở > as ` phân tử của mảng sau khi thêm vào 30 Đối tượng mảng (array object) s Các phương thức của đối tượng mảng Phương thức Mô tả reverse() Đảo ngược các phần tử trong mảng shift() Xoá và trả về phần tử đầu tiên của mảng slice(start, [end]) Trả về một mảng các phần tử từ vị trí start đến vị trí end của mảng, nêu không xác định ví end xem như lây đên cuôi mảng (vị trí end có thê là sô âm) splice(startlndex, Xoá [how_many] phần tử tại vị trí startlndex và thay (JS1.6, FireFox) [how_many], thế bằng các giá trị [value1, value2.