Tài liệu ngôn ngữ javascript trong lập trình Web

79 812 1
Tài liệu ngôn ngữ javascript trong lập trình Web

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

JavaScript chơng Lời nói đầu Với HTML and Microsoft FrontPage bạn đà biết cách tạo trang Web - nhiên mức biểu diễn thông tin cha phải trang Web động có khả đáp ứng kiện từ phía ngời dùng HÃng Netscape đà đa ngôn ngữ script có tên LiveScript để thực chức Sau ngôn ngữ đợc đổi tên thành JavaScript để tận dụng tính đại chúng ngôn ngữ lập trình Java Mặc dù có điểm tơng đồng Java JavaScript, nhng chúng hai ngôn ngữ riêng biệt JavaScript ngôn ngữ dới dạng script gắn với 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 mà dễ biên dịch, trình duyệt đọc JavaScript dới dạng mà nguồn Chính bạn dễ dàng học JavaScript qua ví dụ bạn thấy cách sử dụng JavaScript trang Web JavaScript ngôn ngữ dựa đối tợng, có nghĩa bao gồm nhiều kiểu đối tợng, ví dụ đối tợng Math với tất chức toán học Tuy JavaScript không ngôn ngữ hớng đối tợng nh C++ hay Java không hỗ trợ lớp hay tính thừa kế JavaScript đáp ứng kiện nh tải hay loại bỏ form Khả cho phép JavaScript trở thành ngôn ngữ script động Giống với HTML Java, JavaScript đợc thiết kế độc lập với hệ điều hành Nó chạy hệ điều hành có trình duyệt hỗ trợ JavaScript Ngoài JavaScript giống Java khía cạnh an ninh: JavaScript đọc viết vào file ngời dùng Các trình duyệt web nh Nescape Navigator 2.0 trë ®i cã thĨ hiĨn thị câu lệnh JavaScript đợc nhúng vào trang HTML Khi trình duyệt yêu cầu trang, server gửi đầy đủ nội dung trang đó, bao gồm HTML câu lệnh JavaScript qua mạng tới client Client đọc trang từ đầu đến cuối, hiển thị kết HTML xử lý câu lệnh JavaScript chúng xuất Các câu lệnh JavaScript đợc nhúng trang HTML trả lời cho kiện ngời sử dụng nh kích chuột, nhập vào form điều hớng trang Ví dụ bạn kiểm tra giá trị thông tin mà ngời sử dụng đa vào mà không cần đến trình truyền mạng Trang HTML với JavaScript đợc nhúng kiểm tra giá trị đợc đa vào thông báo với ngời sử dụng giá trị đa vào không hợp lệ Mục đích phần giới thiệu ngôn ngữ lập trình JavaScript để bạn viết script vào file HTML Khoa Toan tin, Đại học Quốc gia Hà Nội JavaScript Chơng Nhập môn JavaScript 2.1.Nhúng JavaScript vào file HTML Bạn nhúng JavaScript vào file HTML theo cách sau đây: ã Sử dụng câu lệnh hàm cặp thẻ • Sư dơng c¸c file ngn JavaScript • Sư dơng biểu thức JavaScript làm giá trị thuộc tính HTML ã Sử dụng thẻ kiện (event handlers) thẻ HTML Trong đó, sử dụng cặp thẻ nhúng file nguồn JavaScript đợc sử dụng nhiều 2.1.1.Sử dụng thẻ SCRIPT Script đợc đa vào file HTML cách sử dụng cặp thẻ Các thẻ có thĨ xt hiƯn phÇn hay cđa file HTML Nếu đặt phần , đợc tải sẵn sàng trớc phần lại văn đợc tải Thuộc tính đợc định nghĩa thời cho thẻ LANGUAGE= dùng để xác định ngôn ngữ script đợc sử dụng Có hai giá trị đợc định nghĩa "JavaScript" "VBScript" Với chơng trình viết JavaScript bạn sử dụng cú pháp sau : Chú ý: Ghi không đợc đặt cặp thẻ nh ghi file HTML Cú pháp JavaScript tơng tự cú pháp C nªn cã thĨ sư dơng // // INSERT ALL JavaScript HERE Điểm khác cú pháp viết ghi HTML JavaScript cho phép bạn ẩn mà JavaScript ghi file HTML, để trình duyệt cũ không hỗ trợ cho JavaScript đọc đợc nh ví dụ sau đây: Dßng cuối script cần có dấu // để trình duyệt không diễn dịch dòng dới dạng mà JavaScript Các ví dụ chơng không chứa đặc điểm ẩn JavaScript để mà dễ hiểu Khoa Toan tin, Đại học Quốc gia Hà Nội JavaScript 2.1.2 Sư dơng mét file ngn JavaScript Thc tÝnh SRC thẻ cho phép bạn rõ file nguồn JavaScript đợc sử dụng (dùng phơng pháp hay nhúng trực tiếp đoạn lệnh JavaScript vào trang HTML) Cú pháp: Thuộc tính rấy hữu dụng cho việc chia sẻ hàm dùng chung cho nhiều trang khác Các câu lệnh JavaScript nằm cặp thẻ có chứa thuộc tinh SRC trừ có lỗi Ví dụ bạn muốn đa dòng lệnh sau vào cặp thẻ : document.write("Không tìm thấy file JS đa vào!"); Thuộc tính SRC đợc định rõ địa URL, liên kết đờng dẫn tuyệt ®èi, vÝ dơ: C¸c file JavaScript bên không đợc chứa thẻ HTML Chúng đợc chứa câu lệnh JavaScript định nghĩa hàm Chú ý Khi bạn muốn xâu trích dẫn xâu khác cần sử dụng dấu nháy đơn ( ' ) để phân định xâu Điều cho phép script nhận xâu ký tự Tên file hàm JavaScript bên cần có đuôi js, server phải ánh xạ đuôi js tới kiểu MIME application/x-javascript Đó mà server gửi trở lại phần Header file HTML Để ánh xạ đuôi vào kiểu MIME, ta thêm dòng sau vào file mime.types đờng dẫn cấu hình 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 tải file JavaScript đợc thuộc tính SRC không cách Trong ví dụ sau, hàm bar có chứa xâu "left" nằm cặp dấu nháy kép: function bar(widthPct){ document.write(" ") } 2.3 Thẻ Cặp thẻ 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 không hiểu thẻ bị lờ đi, đoạn mà nằm cặp thẻ đợc Navigator hiển thị Ngợc lại, trình duyệt có hỗ trợ JavaScript đoạn mà cặp thẻ đợc bỏ qua Tuy nhiên, điều xảy ngời sử dụng không sử dụng JavaScript trình duyệt cách tắt hộp Preferences/Advanced Khoa Toan tin, Đại häc Qc gia Hµ Néi JavaScript VÝ dơ: Trang 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 để tải phiên Netscape Nếu bạn đà sử dụng trình duyệt Netscape từ 2.0 trở mà đọc đợc dòng chữ hÃy bật Preferences/Advanced/JavaScript lên Hình 2.3: Minh hoạ thẻ NOSCRIPT 2.3 Hiển thị dòng text Trong hầu hết ngôn ngữ lập trình, khả sở hiển thị hình dòng text Trong JavaScript, ngời lập trình điều khiển việc xuất hình client dòng text file HTML JavaScript xác định ®iĨm mµ nã sÏ xt file HTML vµ dòng text kết đợc dịch nh dòng HTML khác hiển thị trang Hơn nữa, JavaScript cho phép ngời lập trình sinh hộp thông báo xác nhận gồm hai nút Ngoài ra, dòng text số hiển thị trờng TEXT TEXTAREA form Trong phần này, ta học cách thức write() writeln() document Khoa Toan tin, Đại học Quốc gia Hà Nội đối tợng JavaScript Đối tợng document JavaScript đợc thiết kế sẵn hai cách thức để xuất dòng text hình client: write() writeln() Cách gọi cách thức đối tợng nh sau: object_name.property_name Dữ liệu mà cách thức dùng để thực công việc đợc đa vào dòng tham số, ví dụ: document.write("Test"); document.writeln('Test'); Cách thức write () xuất hình xâu Text nhng không xuống dòng, cách thức writeln() sau viết xong dòng Text tự động xuống dòng Hai cách thức cho phép xuất thẻ HTML Ví dụ: Cách thức write() xt thỴ HTML Ouputting Text This text is plain. Khoa Toan tin, Đại học Quốc gia Hà Nội JavaScript Ví dụ: Sự khác write() writeln(): Khi duyệt đợc kết quả: Hình 2.5: Sự khác write() writeln() 2.4 Giao tiếp với ngời sử dụng JavaScript hỗ trợ khả cho phép ngời lập trình tạo hộp héi tho¹i Néi dung cđa hép héi tho¹i phơ thc 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 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 dòng text nh sử dụng document.write() document.writeln() 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 Khi file chờ cho ®Õn ngêi sư dơng nhÊn vµo nót OK råi tiếp tục thực Thông thờng, cách thức alert() đợc sử dụng trờng hợp: ã Thông tin đa form không hợp lệ ã Kết sau tính toán không hợp lệ ã Khi dịch vụ cha sẵn sàng để truy nhập liệu Tuy nhiên cách thức alert () 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 promt() Tơng tự nh alert (), prompt () tạo hộp hội thoại với dòng thông báo bạn đa vào, nhng cung cấp trờng để nhập liệu vào Ngời sử dụng nhập vào trờng kích vào OK Khi đó, ta xử lý liệu ngời sử dụng vừa đa vào Ví dụ: Hộp hội thoại gồm dòng thông báo, trờng nhập liệu, nút OK nút Cancel Chơng trình hỏi tên ngời dùng sau hiển thị thông báo ngắn sử dụng tên đa vào Ví dụ đợc lu 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 JavaScript Khi duyệt có kết quả: Hình2.1: Hiển thị cửa sổ nhập tên Ví dụ 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 đợc ghi biến có tên name Biến name đợc kết hợp với chuỗi khác đợc hiển thị cửa sổ 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 bạn đà có ý tởng chức đạt đợc qua JavaScript, hÃy tiếp tục tìm hiểu thêm ngôn ngữ Khoa Toan tin, Đại học Quốc gia Hà Nội JavaScript 2.5 Điểm lại lệnh mở rộng Lệnh/Mở rộng Kiểu Mô tả SCRIPT thẻ HTML Hộp chứa lệnh JavaScript SRC Thuộc tính thẻ SCRIPT Giữ địa file JavaScript bên File phải có phần đuôi js LANGUAGE thuộc tính thẻ SCRIPT Định rõ ngôn ngữ script đợc sư dơng (JavaScript hc VBScript) // Ghi chó JavaScript Đánh dấu ghi dòng đoạn script /* */ Ghi JavaScript Đánh dấu ghi khối đoạn script document.write() cách thức JavaScript Xuất xâu cửa sổ thời cách 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 JavaScript Hiển thị dòng thông báo hộp hội thoại promt() Cách thức JavaScript Hiển thị dòng thông báo hộp hội thoại đồng thời cung cấp trờng nhập liệu để ngời sử dụng nhập vào Khoa Toan tin, Đại học Quốc gia Hà Nội JavaScript 10 Chơng Biến JavaScript 3.1 Biến phân loạI biến Tên biến JavaScript phải bắt đầu chữ hay dấu gạch dới Các chữ số không đợc sử dụng để mở đầu tên biến nhng sử dụng sau ký tự Phạm vi biến hai kiểu sau: ã Biến toàn cục: Có thể đợc truy cập từ đâu ứng dụng đợc khai báo nh sau : x = 0; ã Biến cục bộ: Chỉ đợc truy cập phạm vi chơng trình mà khai báo Biến cục đợc khai báo 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 , nhiên điều không thực cần thiết 3.2 Biểu diễn từ tố JavaScript Từ tố giá trị chơng trình không thay đổi Sau c¸c vÝ dơ vỊ tõ tè: “The dog ate my shoe true 3.3 Kiểu liệu Chú ý Khác víi C, JavaScript kh«ng cã kiĨu h»ng sè CONST để biểu diễn giá trị Khác với C++ hay Java, JavaScript ngôn ngữ có tính định kiểu thấp Điều có nghĩa kiểu liệu khai báo biến Kiểu liệu đợc tự động chuyển thành kiểu phù hợp 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 JavaScript 65 selectListName.options[index] = null; 1.1 PhÇn tư submit Nót Submit trờng hợp đặc biệt button, nh nút Reset Nút đa thông tin từ trờng form tới địa URL đợc thc tÝnh ACTION cđa thỴ form sư dơng cách thức METHOD thẻ FORM Giống nh đối tợng button reset, đối tợng submit có sẵn thuộc tính name value, cách thức click() thẻ kiện onClick 1.2 Phần tử Text Phần tử nằm phần tử hay đợc sử dụng form HTML Tơng tự nh trờng Password, trờng text cho phép nhập vào dòng đơn, nhng ký tự bình thờng đối tợng text có ba thuộc tính:defautValue, name value Ba cách thøc m« pháng sù kiƯn cđa ngêi sư dơng: focus(), blur() select() Có thẻ kiện là: obBlur, onFocus, onChange, onSelect Chú ý kiện thực trỏ đà đợc kích trờng text Bảng sau mô tả thuộc tính cách thức đối tợng text Bảng Các thuộc tính cách thức đối tợng text Cách thức thuộc tính Mô tả defaultValue Chỉ giá trị mặc định phần tử đợc thẻ INPUT (thuộc tính) name Tên đối tợng đợc thẻ INPUT (thuộc tính) value Giá trị thời phần tử (thuộc tính) focus() Mô tả việc trỏ tới trờng text (cách thức) blur() Mô tả việc trỏ rời trờng text (cách thức) select() Mô tả việc lựa chọn dòng text trờng text (cách thức) Một ý quan trọng gán giá trị cho trờng text cách liên kết giá trị với thuộc tính value Trong ví dụ sau đây, dòng text đợc đa vào trờng đợc lặp lại trờng text thứ hai, dòng text đợc đa vào trờng text thứ hai lại đợc lặp lại trờng texxt thứ Khả áp dụng để tự động cập nhật thay đổi liệu Ví dụ Tự động cập nhËt c¸c trêng text Khoa Toan tin, Đại học Quốc gia Hà Nội JavaScript 66 text Example NAME="first" NAME="second" 1.3 PhÇn tư Textarea ThỴ TEXTAREA cung cÊp mét hép cho phÐp nhËp sè dòng text ngời thiết kế định trớc Ví dụ: Default Text Here vÝ dô tạo 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 trờng vào lần hiển thị Cũng nh phần tử text , JavaScript cung cấp cho bạn thuộc tính defaultValue, name, value, cách thức focus(), select(), blur(), thẻ kiƯn onBlur, onForcus, onChange, onSelect M¶ng elements[] Khoa Toan tin, Đại học Quốc gia Hà Nội 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 form sau: bạn gọi tới ba thành phần nh sau: document.elements[0], document.elements[1], document.elements[2], cã thĨ gäi document.testform.one, document.testform.two, document.testform.three Thc tÝnh nµy thêng đợc sử dụng mối quan hệ phần tử dùng tên chúng Mảng form[] Các thẻ kiện đợc thiết kế để làm việc với form riêng biệt trờng thời điểm, hữu dụng phép gọi tới form có liên quan trang Mảng form[] đề cập đến có nhiều xác định nhân form trang have information in a single field match in all three forms Cã thÓ gäi b»ng document.forms[] thay gọi tên form Trong script này, bạn có hai trờng text để nhập nằm hai form độc lập với Sử dụng mảng form bạn tơng tác giá trị c¸c trêng hai form cïng mét lóc ngêi sử dụng thay đổi giá trị form forms[] Example Khoa Toan tin, Đại học Quốc gia Hà Nội JavaScript 68 Mặt khác, bạn truy nhập đến form tên form đợc đặt thẻ FORM: Khi bạn có document.name thể gọi document.forms["name"] Xem lại lệnh 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 trỏ từ phần tử form.action cách thức JavaScript Xâu chứa giá trị thuộc tính ACTION thẻ FORM form.elemrnts thuộc tính JavaScript mảng chứa danh sách phần tử form (nh checkbox, trêng text, danh s¸ch lùa chän) form.encoding thc tÝnh JavaScript x©u chøa kiĨu MIME sư dơng chun th«ng tin tõ form tíi server form,name thc tính JavaScript Xâu chứa giá trị thuộc tính NAME thẻ FORM form.target thuộc tính JavaScript Xâu chứa tên cửa sổ đích form submition form.submit cách thức JavaScript type thuộc tính JavaScript ánh xạ kiểu phần tử form thành xâu onSubmit Thẻ 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 () checkbox thc tÝnh HTML Thc tÝnh kiĨu cho c¸c checkbox cña HTML () pasword thuéc tÝnh HTML Thuéc tÝnh kiểu cho dòng pasword HTML() radio thuộc tÝnh HTML Thc tÝnh kiĨu cho c¸c nót radio cđa HTML () Khoa Toan tin, Đại học Quốc gia Hà Nội Mô tả việc submit form HTML JavaScript 69 reset thc tÝnh HTML Thc tÝnh kiĨu cho c¸c nót reset cđa HTML () SELECT thỴ HTML Hép thẻ cho danh sách lựa chọn OPTION thẻ HTML c¸c lùa chän danh s¸ch lùa chän(Option 1Option 2) submit thc tÝnh HTML Thc tÝnh kiĨu cđa nót submit () text thuéc tÝnh HTML Thuéc tÝnh kiÓu cđa trêng form () TEXTAREA ThỴ HTML Hép thẻ cho nhiều dòng ( defautl ) 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 onClick thuộc tính JavaScript Thẻ 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ả lựa chọn check(checkbox, radio button) defaultChecked thuộc tính JavaScript Xâu chứa giá trị mặc định phần tử HTML (password, text, textarea) focus() cách thức JavaScript Mô tả việc trỏ tới phần tử (password, text, textarea) blur() cách thức JavaScript Mô tả việc 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 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 text text Mô tả việc kích vào phần tử form (button, checkbox,password) JavaScript 70 onBlur Thẻ 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 kiện giá trị trờng thay đổi (password, selection list, text, textarea) onSelect ThỴ sù kiƯn ThỴ sù kiƯn ngêi sư dơng chän dßng text 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 thời nhãm lùa chän (radio button) length thuéc tÝnh JavaScript Sè nguyên mô tả tổng số lựa chọn nhãm c¸c lùa chän (radio button) dafautlSelected thuéc tÝnh JavaScript Giá trị Boolean mô tả có lựa chọn đợc đặt mặc định (seledtion list) options thuộc tính JavaScript Mảng lựa chọn danh sách lựa chọn text thuộc tính JavaScript Dòng text hiển thị cho thành phần menu danh sách lựa chọn TABLE thẻ HTML Hộp thẻ cho bảng HTML TR thẻ HTML Hộp thẻ cho hàng bảng HTML TD thẻ HTML Hộp thẻ cho ô hàng bảng HTML COLSPAN thuộc tính HTML Là thuộc tính thẻ TD mô tả ô bảng có nhiều cột ROWSPAN thuộc tính HTML Là thuộc tính thẻ TD mô tả ô bảng có nhiều hàng BODER thuộc tính HTML Là thuộc tính thẻ TABLE mô tả độ rộng đờng viền bảng document.forms[] thuộc tính JavaScript mảng đối tợng form với danh sách form document string.substring() cách thức JavaScript Khoa Toan tin, Đại học Quốc gia Hà Nội Trả lại xâu xâu string từ JavaScript 71 tham số vị trí ký tự đầu đến vị trí ký tự cuối Math.floor() cách thức JavaScript string.length thuộc tính JavaScript Giá trị nguyên cđa sè thø tù ký tù ci cïng x©u string Khoa Toan tin, Đại học Quốc gia Hà Nội Trả lại giá trị nguyên nhỏ giá trị tham số đa vào JavaScript 72 Mô hình đối tợng (Object Model) Đối tợng thuộc tính Nh đà biết, đối tợng JavaScript có thuộc tính kèm với Bạn truy nhập đến thuộc tính cách gọi : objectName.propertyName Cả tên đối tợng tên thuộc tính nhạy cảm Bạn định nghĩa thuộc tính cách gán cho giá trị Ví dụ, giả sử có đối tợng tên myCar (trong trờng hợp giả sử đối tợng đà tồn sẵn sàng) Bạn lấy thuộc tính có tên make, model year nh sau: myCar.make = “Ford“ myCar.model = “Mustang“ myCar.year = 69; Có mảng lu trữ tập hợp giá trị tham chiếu tới biến Thuộc tính mảng JavaScript cã quan hƯ mËt thiÕt víi nhau, thùc chóng chØ kh¸c 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 thuộc tính đối tợng myCar mảng nh sau: myCar[make] = Ford myCar[model] = Mustang myCar[year] = 69; Kiểu mảng đợc hiểu nh mảng có khả liên kết phần tử liên kết đến giá trị xâu Để minh hoạ việc mày đợc thực nh nào, hàm sau hiển thị thuộc tính đối tợng thông qua tham số kiểu đối tợng tên đối tợng function show_props (obj, obj_name) { var result=”” for (i in obj) result=result+ obj_name obj[i] + “\n” return result } Khi gọi hàm show_props(myCar,myCar) lên: myCar.make = Ford myCar.model = Mustang myCar.year = 69; Khoa Toan tin, Đại học Quốc gia Hà Nội + .+ i+ = + JavaScript 73 Tạo đối tợng Cả JavaScript client-side server-side có số đối tợng đợc định nghĩa trớc Tuy nhiên, bạn tạo đối tợng riêng bạn Trong JavaScript 1.2, bạn muốn tạo đối tợng kiểu đối tợng, bạn tạo cách sử dụng khởi tạo đối tợng Hoặc bạn muốn tạo nhiều cá thể kiểu đối tợng, bạn tạo hàm xây dựng trớc, sau tạo đối tợng có kiểu hàm toán tử new 5.1.1 Sử dụng khởi tạo đối tợng Trong phiên trớc Navigator, bạn tạo đối tợng cách sử dụng hàm xây dựng chúng sử dụng hàm đợc cung cấp vài đối tợng khác để đạt đợc mục đích Tuy nhiên, Navigator 4.0, bạn tạo đối tợng cách sử dụng khởi tạo đối tợng.Bạn sử dụng cách bạn muốn tạo cá thể đơn lẻ nhiều cá thể đối tợng Cú pháp để tạo đối tợng cách khởi tạo đối tỵng (Object Initializers): objectName={property1: value1, property2: value2, , propertyN: valueN} Trong objectName tên đối tợng mới, propertyI xác minh (có thể tên, số xâu ký tự) valueI biểu thức mà giá trị đợc gán cho propertyI Có thể lựa chọn khởi tạo tên đối tợng khai báo Nếu nh bạn không cần dùng đến đối tợng chỗ, bạn không cần phải gán cho biến Nếu đối tợng đợc tạo cách khởi tạo đối tợng mức cao nhất, lần đối tợng xuất biểu thức, JavaScript đánh giá lại lần Ngoài ra, sử dụng việc khởi tạo hàm lần gọi hàm, đối tợng đợc khởi tạo 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 tạo đối tợng gắn vào biến x biểu thức condition đợc đánh giá Còn ví dụ sau tạo đối tợng myHonda với thc tÝnh: myHonda={color:”red”,wheels:4,engine:{cylinder:4,size:2.2}} Chó ý r»ng thc tÝnh engine cịng đối tợng với thuộc tính Trong Navigator 4.0, b¹n cịng cã thĨ sư dơng mét khởi tạo để tạo mảng Cú pháp để tạo mảng cách khác với tạo đối tợng: arrayName=[element0, element1, ,elementN] Trong đó, arrayName tên mảng mới, elementI giá trị phần tử vị trí mảng Khi bạn tạo mảng cách sử dụng phơng pháp khởi tạo, coi giá trị phần tử mảng, chiều dài mảng số tham số Khoa Toan tin, Đại học Quốc gia Hà Nội JavaScript 74 Bạn không cần phải định rõ tất phần tử mảng Nếu bạn đặt hai dấu phẩy vào hàng, mảng đợc tạo với chốn trống cho phần tử cha đợc định nghĩa nh ví dụ dới đây: Nếu mảng đợc tạo cách khởi tạo(initializer) mức cao nhất, lần mảng xuất biểu thức, JavaScript đánh giá lại lần Ngoài ra, sử dụng việc khởi tạo hàm lần gọi hàm, mảng đợc khởi tạo lần Ví dụ1: Tạo mảng coffees với phần tử độ dài mảng 3: coffees = [“French Roast”,”Columbian”,”Kona”] VÝ dơ 2: T¹o mét mảng với phần tử đợc khởi đầu 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 hàm xây dựng(Constructor Function) Bạn tạo đối tợng riêng với hai bớc sau: Định nghĩa kiểu đối tợng cách viết hàm xây dựng Tạo cá thể đối tợng toán tử new Để định nghĩa kiểu đối tợng, ta phải tạo hàm để định rõ tên, thuộc tính cách thức kiểu đối tợng Ví dụ giả sử bạn muốn tạo kiểu đối tợng ô tô với tên car, có thuộc tính make, model, year color, để thực việc viế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 thuộc tính đối tợng phải thông qua tham số hàm Ví dụ, bạn tạo đối tợng kiểu car nh sau: mycar = new car(Eagle,Talon TSi,1993) Câu lệnh tạo đối tợng mycar liên kết giá trị đợc đa vào với thuộc tính Khi giá trị mycar.make Eagle, giá trị mycar.model Talon TSi, mycar.year số nguyên 1993 Cứ nh bạn tạo nhiều đối tợng kiểu car Một đối tợng có thuộc tính mà thân đối tợng Ví dụ bạn định nghĩa thêm đố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 JavaScript 75 Và sau ta tạo hai ngêi míi: rank = new person(“Rank McKinnon”,33,”M”) ken = new person(Ken John,39,M) Bây 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 bạn 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 phải qua xâu ký tự hay giá trị số tạo đối tợng, ta cần đa hai đối tợng đà đợc tạo câu lệnh vào dòng tham số đối tợng tạo Ta lấy đợc thuộc tính đối tợng owner câu lênh sau: car2.owner.name Chó ý r»ng b¹n cịng cã thĨ t¹o thuộc tính cho đối tợng trớc định nghÜa nã, vÝ dô: car1.color=”black” Nh vËy, thuéc tÝnh color đối tợng car1 đợc gán black Tuy nhiên, không gây tác động tới đối tợng kiểu car khác Nếu muốn thêm thuộc tính cho tất đối tợng 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 thuộc tính đối tợng Trong Navigator 2.0, bạn gọi thuộc tính đối tợng tên thuộc tính số thứ tự Tuy nhiên từ Navigator 3.0 trở đi, ban đầu bạn định nghĩa thuộc tính tên nó, bạn luôn phải gọi tên, bạn định nghĩa thuộc tính số bạn luôn phải gọi tới số Điều ứng dụng bạn tạo đối tợng với thuộc tính chúng hàm xây dựng (nh ví dụ kiểu đối tợng car phần trớc) bạn định nghĩa thuộc tính riêng đối tợng (nh mycar.color=red) Vì bạn định nghĩa thuộc tính đối tợng từ đầu số nh mycar[5]=25 mpg, bạn lần lợt gọi tới thuộc tính khác nh mycar[5] Tuy nhiên điều đối tợng tơng ứng HTML nh mảng form Bạn gọi tới đối tợng mảng số thứ tự tên chóng VÝ dơ thỴ thø hai mét document có thuộc tính NAME myform bạn gọi tới form document.form[1] document.form[myForm] document.myForm Khoa Toan tin, Đại học Quốc gia Hà Nội JavaScript 76 5.1.4 Định nghĩa thêm thuộc tính cho kiểu đối tợng Bạn thêm thuộc tính cho kiểu đối tợng đà đợc định nghĩa trớc cách sử dụng thuộc tính property Thuộc tính đợc định nghĩa tác dụng đối tợng mà có tác dụng tất đối tợng khác kiểu.Ví dụ sau thực thêm thuộc tính color cho tất đối tợng kiểu car, sau gắn giá trị màu cho thuộc tính color đối tợng car1: car.prototype.color=null car1.color=red 5.1.5 Định nghĩa cách thức Một cách thức hàm đợc liên kết với đối tợng Bạn định nghĩa cách thức có nghĩa bạn định nghĩa hàm chuẩn Bạn sử dụng cú pháp sau để gắn hàm cho đối tợng tồn tại: object.methodname = function_name Trong object đối tợng tồn tại, methodname tên cách thức function_name tên hàm Bạn gọi cách thức từ đối tợng nh sau: object.methodname() Bạn định nghĩa cách thức cho kiểu đối tợng cách đa cách thức vào hàm xây dựng đối tợng Ví dụ bạn định nghĩa hàm định dạng hiển thị thuộc tính đố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 thêm cách thức vào cho đối tợng car cách thêm dòng lệnh sau vào hàm định nghĩa đối tợng this.displayCar= displayCar; Nh đị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 gọi cách thức displayCar đối tợng: car1.displayCar() car2.displayCar() Khoa Toan tin, Đại häc Qc gia Hµ Néi JavaScript 77 5.1.6 Sư dơng References) cho tham chiếu đối tợng (Object JavaScript có từ khoá đặc biệt this mà bạn sử dụng với cách thức để gọi tới đối tợng thời Ví dụ, giả sử bạn có hàm validate dùng để xác nhận giá trị thuộc tính đối tợng nằm khoảng đó: function validate(obj, lowval, hival){ if ( (obj.valuehival) ) alert(Invalid value!) } Sau bạn gọi hàm validate từ thẻ kiện onChange: Khi liªn kÕt víi mét thc tÝnh form, tõ kho¸ this cã thĨ gäi tíi form cha đối tợng thời Trong ví dụ sau, myForm có chứa đối tợng Text nút bấm Khi ngêi sư dơng kÝch vµo nót bÊm, trêng text hiển thị tên form Thẻ kiện onClick nót bÊm sư dơng this.form ®Ĩ gäi tíi form cha lµ myForm Form name:

5.1.7 Xo¸ đối tợng Trong JavaScript cho Navigator 2.0, bạn xoá đối tợng-chúng tồn bạn ®· rêi khái trang ®ã Trong JavaScript cho Navigator 3.0 cho phép bạn xoá đối tợng cách đặt cho trỏ tới giá trị Null (nếu nh lần cuối gọi tới đối tợng) JavaScript đóng đối tợng thông qua biểu thức gán Khoa Toan tin, Đại học Quốc gia Hà Nội JavaScript 78 Bảng tổng kết từ khoá Sau từ đựoc định nghĩa phần ngôn ngữ JavaScript không đợc sử dụng 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 import public void double in return while else instanceof short with Khoa Toan tin, Đại học Quốc gia Hà Néi JavaScript 79 Tỉng kÕt Nh vËy, tµi liƯu đà giới thiêu sơ qua JavaScript, mà sách tham khảo hữu ích để phát triển ứng dụng bạn Bạn tham khảo toàn diện JavaScript Teach Yourself JavaScript in 14 Days, JavaScript Guide Do JavaScript ngôn ngữ có thay đổi nhanh chóng, bạn nên đến với trang Web hÃng Netscape ( http://www.netscape.com ) để có thông tin ngôn ngữ Khoa Toan tin, Đại học Quốc gia Hµ Néi ... gia Hà Nội JavaScript 39 while (num

Ngày đăng: 16/04/2014, 23:15

Từ khóa liên quan

Mục lục

  • Hình 3.1: Kết quả của xử lý dữ liệu

    • Chú ý

    • Chú ý

    • Hình 5.1: Kết quả của lệnh for...loop

    • 1.1.1.1.1. Hình 8: Ví dụ về hàm

    • Hình 5.8 : Kết quả của ví dụ parseFloat

    • 2.1.Nhúng JavaScript vào file HTML

      • 2.1.1.Sử dụng thẻ SCRIPT

      • 2.1.2. Sử dụng một file nguồn JavaScript

      • 2.3. Thẻ <NOScript> và </NOSCRIPT>

      • 2.3. Hiển thị một dòng text

      • 2.4. Giao tiếp với người sử dụng

      • 2.5. Điểm lại các lệnh và mở rộng

      • 3.1. Biến và phân loạI biến

      • 3.2. Biểu diễn từ tố trong JavaScript

      • 3.3. Kiểu dữ liệu

      • 1.1.1. KIểu nguyên (Interger)

      • 1.1.2. Kiểu dấu phẩy động (Floating Point)

      • 1.1.3. Kiểu logic (Boolean)

      • 1.1.4. Kiểu chuỗi (String)

      • 2. Xây dựng các biểu thức trong JavaScript

        • 2.1.1. Gán

        • 2.1.2. So sánh

Tài liệu cùng người dùng

Tài liệu liên quan