Chủ Nhật, 3 tháng 1, 2016
JS - ĐHSP HN
1/03/2016 12:29:00 CH
No comments
Ngôn ngữ Javascript
ThS. Nguyễn Duy Hải
PGĐ TT CNTT-ĐHSP Hà Nội
JavaScript
9 JavaScript là ngôn ngữ kịch bản dùng để tạo các
client-side scripts.
9 JavaScript làm cho việc tạo các trang Web động
và tương tác dễ dàng hơn
9 JavaScript là một ngôn ngữ kịch bản được hãng
Sun Microsystems và Netscape phát triển.
9 JavaScript được phát triển từ Livescript. Của
Netscape
9 Các ứng dụng client chạy trên một trình duyệt
như Netscape Navigator hoặc Internet Explorer.
Khả năng của Javascript
9 JavaScript có thể tăng cường tính động và
tính tương tác của các trang web.
– Cung cấp sự tương tác người dùng
– Thay đổi nội dung động
– Xác nhận tính hợp lệ của dữ liệu
Quy tắc
9 Sử dụng quy tắc chữ hoa
9 Using Pairs
9 Using Spaces
9 Using Comments
Công cụ và môi trường thực thi
9 Các công cụ sinh mã JavaScript
– Thuận lợi khi soạn thảo
– Mã lệnh sẵn có
9 Môi trường thực thi
– Các Scripting ở Client
– Java Script trên Web Server
Chèn Javascript vào HTML
9 Sử dụng thẻ SCRIPT:
9 Sử dụng một file JavaScript ở ngoài
9 Sử dụng các biểu thức JavaScript trong các giá trị
thuộc tính của thẻ
9 Sử dụng trong các trình điều khiển sự kiện
Ví dụ
Biến
9 Biến là một vật chứa tham chiếu đến một vị trí ở bộ nhớ
máy tính
9 Nó được sử dụng để giữ giá trị và có thể thay đổi trong khi
kịch bản thực thi
9 Các biến tuân theo quy tắc đặt tên.
9 Một biến được khai báo sử dụng từ khoá ‘var’.
ví dụ: var A = 10;
9 Các biến có một phạm vi được xác định trong khi chúng
khai báo trong script.
– Biến toàn cục
– Biến cục bộ
9 Nguyên dạng là các giá trị không đổi được dùng trong
script.
Các kiểu dữ liệu
9 JavaScript có một tập các kiểu dữ liệu.
– Số (number)
– Giá trị logic (boolean)
– Chuỗi (String)
– Giá trị rỗng Null
9 Trong JavaScript, hai biến khác kiểu có thể kết
hợp với nhau.
ví dụ: A = “ This apple costs Rs.” + 5
sẽ có kết quả là một chuỗi với giá trị là "This
apple costs Rs. 5".
Ví dụ
Các kiểu nguyên thủy
9 Integer – là các hệ thống số thập phân, thập lục
phân và nhị phân.
9 Floating- point(số thực) – Các số thập phân có
phần thập phân sử dụng “e” or “”E”và theo sau là
các số nguyên.
9 String – là một chuỗi rỗng hay chuỗi ký tự được
đặt trong cặp ngoặc đơn hoặc ngoặc kép
9 Boolean–Kiểu này có hai giá trị: True or False.
9 null - Kiểu null chỉ có một giá trị: null. Null hàm ý
không có dữ liệu.
Toán tử
9 Các toán tử xử lý một hoặc nhiều biến hoặc các
giá trị (các toán hạng) và trả lại giá trị kết quả.
9 JavaScript sử dụng cả hai toán tử một ngôi và hai
ngôn.
9 Các toán tử được phân loại phụ thuộc quan hệ
chúng thực hiện như:
– Toán tử số học
– Toán tử so sánh
– Toán tử logic
– Toán tử chuỗi
– Toán tử lượng giá
9 Mức ưu tiên của toán tử
Ví dụ
Mảng
9 Mảng được dùng để lưu trữ một dãy các biến với cùng một
tên.
9 Một số (chỉ số) dùng để phân biệt các giá trị khác nhau.
9 Các mảng bắt đầu với chỉ số 0 trong JavaScript.
9 Tạo mảng: Cú pháp
arrayObjectName = new Array([element0, element1,
..., elementN])
9 Cộng các phần tử: Chúng ta có thể cộng các phần tử mảng
khi chúng ta tạo nó. Ví dụ. emp[0] = "Ryan Dias"
9 Các phần tử của một mảng có thể truy cập bằng tên Name
hoặc chỉ số Index của phần tử.
Mảng (tt)
9 Các phương thức của đối tượng mảng có thể
dùng thao tác trên mảng.
9 Các phương thức của đối tượng mảng bao gồm:
– join
– pop
– push
– reverse
– shift
– sort
9 JavaScript hỗ trợ mảng nhiều chiều.
Lệnh rẽ nhánh
9 Câu lệnh điều kiện được dùng để kiểm tra
điều kiện. Kết quả xác định câu lệnh hoặc
khối lệnh được thực thi.
9 Các câu lệnh điều kiện bao gồm:
– If….. Else
– Switch
Lặp
9 Cấu trúc điều khiển lặp trong chương trình
là các lệnh lặp.
9 Các kiểu lệnh lặp bao gồm:
– For
– Do …. While
– While
– Break & continue
– For….in
– with
Hàm
9 JavaScript có sẵn các hàm đinh nghĩa trước dùng trong
script.
9 Một vài hàm định nghĩa trước trong JavaScript bao gồm:
– Hàm eval
– Hàm isNaN
9 Hàm do người dùng tự tạo
function funcName(argument1,argument2,…){
statements;
}
9 Gọi hàm
9 Câu lệnh Return
Các đối tượng cơ bản
trong Javascript
Đối tượng
9 Thuộc tính (biến) dùng để định nghĩa đối
tượng và các phương thức (hàm) tác động
tới dữ liệu đều nằm trong đối tượng.
9 Ví dụ: một chiếc xe hơi là một đối tượng.
Các thuộc tính của nó là cấu tạo, kiểu
dáng và màu sắc. Hầu hết các chiếc xe hơi
đều có một vài phương thức chung như
go(), brake(), reverse().
Thuộc tính và phương thức
9 Để truy cập thuộc tính của đối tượng,
chúng ta phải chỉ ra tên đối tượng và
thuộc tính của nó:
objectName.propertyName
9 Để truy cập phương thức của đối tượng,
chúng ta phải chỉ ra tên đối tượng và
thuộc tính của nó:
objectName.method()
Sử dụng đối tượng
9 Khi tạo trang web, chúng ta cần sử dụng:
– Các đối tượng trình duyệt
– Các đối tượng có sẵn (thay đổi phụ thuộc vào
ngôn ngữ kịch bản được sử dụng)
– HTML elements
9 Chúng ta cũng có thể tạo ra các đối tượng
để sử dụng theo yêu cầu của mình.
Từ khóa this
9 Giá trị của nó chỉ ra đối tượng hiện hành
và có thể có các thuộc tính chuẩn chẳng
hạn như tên, độ dài, và giá trị được áp
dụng phù hợp.
Lệnh for…in
9 Câu lệnh for...in được dùng để lặp mỗi
thuộc tính của đối tượng hoặc mỗi phần tử
của một mảng.
9 Cú pháp:
for (variable in object) {
statements;
}
with
9 Câu lệnh with được dùng để thực thi tập
hợp các lệnh mà các lệnh này dùng các
phương thức của cùng một loại đối tượng.
9 thuộc tính được gán cho đối tượng đã được
xác định trong câu lệnh with.
9 Cú pháp:
with (object) {
statements;
}
Toán tử new
9 Toán tử new được dùng để tạo ra một thực thể
mới của một loại đối tượng
9 Đối tượng có thể có sẵn hoặc do người dùng định
nghĩa
– objectName = new objectType (param1 [,param2]
...[,paramN])
– Trong đó:
9 objectName là tên của thực thể đối tượng mới.
9 ObjectType là một hàm quyết định loại của đối
tượng. Ví dụ Array.
9 Param[1, 2, . . ] là các giá trị thuộc tính của đối
tượng.
Hàm eval
9 Hàm eval được dùng để đánh giá một
chuỗi mã lệnh mà không cần tham chiếu
đến bất cứ đối tượng cụ thể nào.
9 Chuỗi có thể là một biểu thức JavaScript,
một câu lệnh hoặc một nhóm câu lệnh
9 Biểu thức có thể bao gồm nhiều biến và
nhiều thuộc tính của một đối tượng.
var x = 5;
var z = 10;
document.write(eval(“x + z + 5”));
Đối tượng string
9 Đối tượng String được dùng để thao tác
và làm việc với chuỗi văn bản.
9 Chúng ta có thể tách chuỗi ra thành các
chuỗi con và biến đổi chuỗi đó thành các
chuỗi hoa hoặc thường trong một chương
trình.
9 Cú pháp tổng quát:
stringName.propertyName
hay
stringName.methodName
Tạo đối tượng string
9 Có 3 phương thức khác nhau để tạo ra
chuỗi.
– Dùng lệnh var và gán cho nó một giá trị.
– Dùng một toán tử (=) có gán với một tên biến.
– Dùng hàm khởi tạo String (string).
Đối tượng Math
9 Đối tượng Math có các thuộc tính và
phương thức biểu thị các phép tính toán
học nâng cao.
function doCalc(x) {
var a;
a = Math.PI * x * x;
alert ("The area of a circle with a
radius of " + x + “ is " + a);
}
Đối tượng Date
9 Date là một đối tượng có sẵn chứa thông
tin về ngày và giờ.
9 Đối tượng Date không có thuộc tính nào.
9 Nó có nhiều phương thức dùng để thiết
lập, lấy và xử lý các thông tin về thời gian.
Đối tượng Date (tt)
9 Đối tượng Date lưu trữ thời gian theo số
mili giây tính từ 1/1/1970 00:00:00
9 DateObject = new Date(parameters)
Xử lý sự kiện
9 Các sự kiện JavaScript hỗ trợ
9 Đặt bộ lắng nghe sự kiện:
• onClick
• onChange
• onFocus
• onBlur
• onMouseOver
• onMouseOut
• onLoad
• onSubmit
• onMouseDown
• onMouseUp
Danh sách sự kiện đầy đủ
Event Occurs when...
onabort a user aborts page loading
onblur a user leaves an object
onchange a user changes the value of an object
onclick a user clicks on an object
ondblclick a user double-clicks on an object
onfocus a user makes an object active
onkeydown a keyboard key is on its way down
Onkeypress a keyboard key is pressed
onkeyup a keyboard key is released
Danh sách sự kiện đầy đủ (tt)
onload
a page is finished loading. Note: In Netscape
this event occurs during the loading of a
page!
onmousedown a user presses a mouse-button
onmousemove a cursor moves on an object
onmouseover a cursor moves over an object
onmouseout a cursor moves off an object
onmouseup a user releases a mouse-button
onreset a user resets a form
onselect a user selects content on a page
onsubmit a user submits a form
onunload a user closes a page
Các đối tượng của trình duyệt
DOM (Document Object Models)
9 Một tính năng quan trọng của JavaScript
là ngôn ngữ dựa trên đối tượng.
9 Giúp người dùng phát triển chương trình
theo môđun và có thể sử dụng lại.
9 Đối tượng được định nghĩa là một thực thể
đơn nhất bao gồm các thuộc tính và
phương thức.
9 Thuộc tính là giá trị của một đối tượng.
Các đối tượng trên trình duyệt
9 Trình duyệt là một ứng dụng được sử dụng để hiển thị nội
dung của tài liệu HTML.
9 Các trình duyệt cũng đưa ra một số đối tượng có thể được
truy cập và sử dụng trong script .
9 Chi tiết các thuộc tính: tra tài liệu hoặc w3schools
IE Browser Objects Netscape Browser Objects
Một vài ứng dụng
9 Thay đổi thanh trạng thái, tiêu đề
9 Tự động refresh
9 Kiểm tra tính hợp lệ của dữ liệu form
9 Hộp thoại tự tạo
Một vài ứng dụng (tiếp)
9 Calendars
9 Date & Time
9 Document Effects
9 Dynamic Content
(Iframe & Ajax)
9 Form Effects
9 Games
9 Image Effects
9 Galleries,
Mouseover,
Slideshows
9 Links & Tooltips
9 Menus & Navigation
9 CSS Based, Multilevels
9 Mouse and Cursor
9 Scrollers
9 Text Animations
9 User/System
Preference
9 Window and Frames
9 XML and RSS
9 Other
Tham khảo
9 http://www.javascriptkit.com
9 http://www.dynamicdrive.com
9 http://www.javascriptbank.com
9 http://www.dhtmlcentral.com
Một vài ví dụ
Hiệu ứng chữ chạy trên trình
thanh trạng thái của trình duyệt
Lý thuyết
9 window là đối tượng quản lý cửa sổ trình
duyệt.
9 Đối tượng window có thuộc tính status để
xác định thông báo tạm thời xuất hiện
trên thanh trạng thái.
9 VD: Để thể hiện dòng chữ Hello World trên
thanh trạng thái ta sử dụng lệnh:
window.status = 'Hello World'
Lý thuyết (tt)
9 Lệnh setTimeout(f, n)quy định sau
khoảng thời gian n mili giây hàm f sẽ được
gọi. (f là chuỗi lưu lệnh cần thực hiện)
9 Giả sử str là một chuỗi ta có
– str.length: Thuộc tính cho biết độ dài chuỗi
– str.substr(i, n): lấy ra n ký tự kể từ vị trí
thứ i (Ký tự đầu tiên được đánh số là 0)
Lý thuyết (tt)
9 Vài lệnh khác cùng nhóm setTimeout
– timeID = setTimeout(f, n)
– clearTimeout(timeID): Hủy setTimeout
– intervalID = setInterval(f, n): Sau mỗi
khoảng thời gian n ms lệnh f được gọi.
– clearInterval(intervalID): Hủy interval.
Giải thuật
9 Ý tưởng giải thuật
– Để có được cảm giác chữ chạy trên thanh trạng thái ta
cần thay đổi thuộc tính status của cửa sổ bằng cách
copy ký tự đầu của thanh dòng trạng thái hiện tại đưa
xuống cuối cùng và lặp lại như vậy sau mỗi khoảng thời
gian.
9 Giải thuật: Giả sử ta có biến str đang lưu chuỗi
cần chạy. Công việc thực hiện như sau:
– B1: Thể hiện chuỗi str lên thanh trạng thái. Chuyển sang
bước 2
– B2: Chuyển ký tự đầu của str về cuối (bằng cách gán str
= xâu con kể từ vị trí thứ 2 của str đến cuối + ký tự đầu
tiên của str). Chuyển sang bước 3
– B3: Trễ một khoảng thời gian rồi quay lại bước 1
Mã lệnh
Demo
Phát triển
9 Thay bằng nhiều dòng chữ chạy khác
nhau (sử dụng mảng để lưu trữ)
9 Chữ chạy theo nhiều cách khác nhau
9 Cho chữ chạy trên thanh tiêu đề
9 Cho chữ chạy trên một đối tượng khác
Đối tượng window
9 Tập hợp: frames[]
9 Thuộc tính:
– document
– history
– location
– opener
– status:
Đối tượng window
9 Sự kiện:
– onLoad
– onUnload
9 Phương thức
– alert(strMessage)
– confirm(strMessage)
– prompt(strMessage, defaultText)
– open(url, name, option, replace)
Đối tượng window
– Interval_ID = setInterval(strLệnh, Thời_gian)
– Timeout_ID = setTimeout(strLệnh, Thời_gian)
– clearInterval(Interval_ID)
– clearTimeout(Timeout_ID)
Đối tượng document
9 Tập hợp
– anchors[]
– links[]
– forms[]
– images[]
9 Thuộc tính
– title
– cookie
9 Phương thức
– getElementById(ID)
– getElementByName(ten)
– getElementByTagName(Ten_The)
Đối tượng document
9 Truy xuất đến các form:
– window.document.tên_form
9 Truy xuất các đối tượng trong form:
– objForm.Tên_ĐT
9 Thuộc tính đối tượng:
– value
Ví dụ
9 Tạo form gồm các thông tin:
– Tên truy cập
– Mật khẩu
– Nhập lại mật khẩu
9 Kiểm tra dữ liệu vào có hợp lệ không?
– Hợp lệ:
• tên truy cập không rỗng
• 2 mật khẩu giống nhau, khác rỗng, >4 ký tự
Nếu hợp lệ được submit, ngược lại thông báo lỗi.
Ví dụ 2
9 Web link dạng combo box: Trong combo
box có tên các đơn vị liên kết. Người dùng
chọn đơn vị nào thì hiện web site của đơn
vị đó trong 1 cửa sổ.
9 Làm đồng hồ điện tử (hiện số) trên trang
web.
– Hiển thị thời gian hiện tại
– Hiển thị khoảng thời gian đến 1 đích nào đó
0 nhận xét:
Đăng nhận xét