javaScript

NGÔN NGỮ JAVASCRIPT

Giảng viên: Lê Bá Vui

Viện CNTT-TT - ĐH Bách Khoa Hà Nội

JAVASCRIPT LÀ GÌ?

 Là ngôn ngữ kịch bản đƣợc thực hiện trên máy client.

 Đƣợc nhúng vào trong trang web.

 Đƣợc thiết kế để tăng khả năng tƣơng tác cho trang web.

 Là ngôn ngữ thông dịch

 Đƣợc hỗ trợ bởi trình duyệt

 Đƣợc phát triển bởi hãng Netscape (khác với Java)

JAVASCRIPT CÓ THỂ LÀM GÌ?

 Đặt dữ liệu động vào trong trang HTML

 Đáp ứng các sự kiện

 Đọc ghi các đối tƣợng HTML

 Sử dụng để kiểm tra dữ liệu trƣớc khi gửi đến

server

 Lƣu trữ và đọc thông tin ngƣời sử dụng (cookie)

CHÈN JAVASCRIPT VÀO HTML

 Chèn trực tiếp mã vào trong HTML

<script language="JavaScript">

<!--

// Các dòng lệnh JavaScript

//-->

</script>

 Chèn một file JavaScript chứa mã

<script language="JavaScript" src="hello.js">

</script>

VÍ DỤ

<html> <head> </head> <body> <script language="JavaScript"> <!-- document.write("Hello world!"); //--> </script> </body> </html>

VỊ TRÍ ĐẶT JAVASCRIPT

 Các kịch bản đƣợc đặt trong phần <head>

 Chỉ đƣợc thực hiện khi có lời gọi

 Đáp ứng các sự kiện  Thƣờng là các hàm

 Các kịch bản đƣợc đặt trong phần <body>  Đƣợc thực hiện khi trang web đƣợc nạp bởi trình duyệt

<html> <head> <script ... > </script> </head> <body> </body> </html>

<html> <head> </head> <body> <script ... > </script> </body> </html>

VỊ TRÍ ĐẶT JAVASCRIPT

 Có thể đặt các kịch bản ở cả phần <head> và

phần <body>

 Số lƣợng các kịch bản đƣợc nhúng vào HTML

không giới hạn

CHÚ THÍCH TRONG JAVASCRIPT

 Giống nhƣ trong ngôn ngữ C++

 Chú thích cho một dòng

// Dòng chú thích

 Chú thích cho một đoạn

/*

Đoạn chú thích

*/

CHÚ Ý

 Các lệnh trong JavaScript phân biệt chữ hoa và

chữ thƣờng

 Ví dụ Document.Write("") là sai

 Kết thúc lệnh bằng dấu ;

BIẾN TRONG JAVASCRIPT

 Đƣợc sử dụng để lƣu trữ dữ liệu và có thể thay đổi khi kịch bản đƣợc thực hiện

 Quy tắc đặt tên biến

 Phải bắt đầu bằng một chữ cái hoặc ký tự gạch dƣới _

 Ví dụ: x, y, z, length, _height, _width

 Phân biệt chữ hoa và chữ thƣờng

 Biến X khác với biến x

KHAI BÁO BIẾN

 Cú pháp: var tên_biến;  Ví dụ

var st; var length;

 Khởi tạo giá trị cho biến

var tên_biến = giá_trị_khởi_tạo;  Ví dụ var st = "Hello"; var length = 100;

 Không xác định kiểu cụ thể của biến

GÁN GIÁ TRỊ CHO BIẾN

 Cú pháp

tên_biến = giá_trị;

 Ví dụ

st = "Hello world";

length = 10;

 Chú ý

 Kiểu của biến đƣợc xác định dựa vào giá trị gán

=> có thể thay đổi đƣợc kiểu

KIỂU DỮ LIỆU

 Kiểu số

 x = 10;

 Kiểu logic

 ans = true;

 Kiểu chuỗi

 s = "Hello";

CÁC TOÁN TỬ SỐ HỌC

Toán tử Ý nghĩa Ví dụ (y = 5) Kết quả

+ Cộng x = y + 2 x = 7

- Trừ x = y - 2 x = 3

* Nhân x = y * 2 x = 10

/ Chia x = y / 2 x = 2.5

% Lấy số dư x = y % 2 x = 1

++ Cộng 1 x = ++y x = 6

-- Trừ 1 x = --y x = 4

PHÉP CỘNG VỚI CHUỖI KÝ TỰ

 Ghép các chuỗi với nhau

 Ví dụ s1 = "hello"; s2 = "world"; s = s1 + s2; // s = "helloworld"

 Cộng chuỗi với số, kết quả thu đƣợc là chuỗi  Ví dụ s1 = "5"; s2 = 5; s = s1 + s2; // s = 55

CÁC TOÁN TỬ SO SÁNH

Toán tử Ý nghĩa Ví dụ (x = 5) Kết quả

== So sánh bằng (giá trị) x == 5 true

=== So sánh bằng (giá trị và kiểu)

x === "5" false

!= So sánh khác x != 3 true

> Lớn hơn x > 6 false

< Nhỏ hơn x < 7 true

>= Lớn hơn hoặc bằng x >= 6 false

<= Nhỏ hơn hoặc bằng x <= 6 true

TOÁN TỬ LOGIC

Toán tử Ý nghĩa Ví dụ (x = 5, y = 7) Kết quả

&& và (x > 5) && (y <= 7) false

|| hoặc (x > 5) || (y <= 7) true

! đảo !(x == y) true

TOÁN TỬ ĐIỀU KIỆN

 Cú pháp

tên_biến = (điều_kiện)?giá_trị_1:giá_trị_2;

 Tùy vào điều kiện mà biến đƣợc gán giá trị 1

hoặc giá trị 2

 Ví dụ

x = 4;

y = (x > 5)?x + 1:x - 1;

// y = 3

BIỂU THỨC LỰA CHỌN IF...ELSE...

 Cú pháp Dạng 1: if (điều_kiện)

{ // lệnh }

Dạng 2: if (điều_kiện) {

} else {

}

// lệnh

// lệnh

VÍ DỤ

<html> <body> <script language="JavaScript"> var d = new Date(); var time = d.getHours(); if (time < 12) { document.write("Good morning"); } else if ((time >= 12) && (time < 18)) { document.write("Good afternoon"); } else { document.write("Good evening"); } </script> </body> </html>

BIỂU THỨC LỰA CHỌN SWITCH

 Cú pháp switch (tên_biến) { case giá_trị_1: // khối lệnh 1 break; case giá_trị_2: // khối lệnh 2 break; ... default: // khối lệnh default }

VÍ DỤ

<html> <head> <title>Switch Case Statement</title> </head> <body> <script language="JavaScript"> var date = new Date(); var day = date.getDay(); switch (day) { case 0: document.write("Today is Sunday."); break; case 6: document.write("Today is Saturday."); break; default: document.write("Today is not weekend."); } </script> </body> </html>

CÁC HỘP THOẠI THÔNG BÁO

 Hộp thoại alert

 Cú pháp alert("thông_báo");

 Ví dụ:

alert("Hello world!");

CÁC HỘP THOẠI THÔNG BÁO

 Hộp thoại confirm

 Cú pháp return = confirm("thông_báo");

 Ví dụ:

var ret = confirm("Are you sure?"); if (ret == true) document.write("You pressed OK"); else document.write("You pressed Cancel");

CÁC HỘP THOẠI THÔNG BÁO

 Hộp thoại prompt

 Cú pháp value = prompt("thông_báo",

"giá_trị_mặc định");

 Ví dụ

name = prompt("What's your name?", "Peter");

document.write("Hello " + name);

HÀM TRONG JAVASCRIPT

 Định nghĩa hàm

 Cú pháp

function tên_hàm()

{

// các lệnh thực hiện bên trong hàm

}

 Lời gọi hàm

tên_hàm();

VÍ DỤ

<html> <head> <title>Function 1</title> <script language="JavaScript"> function thongbao() { alert("Hello"); } </script> </head> <body> <script language="JavaScript"> thongbao(); </script> </body> </html>

TRUYỀN THAM SỐ CHO HÀM

 Cú pháp

function tên_hàm(tham_số_1, tham_số_2, ...)

{

...

}

 Lời gọi hàm

tên_hàm(tham_số_1, tham_số_2, ...);

VÍ DỤ

<html> <head> <title>Function 2</title> <script language="JavaScript"> function thongbao(msg) { alert(msg); } </script> </head>

<body> <script language="JavaScript"> thongbao("Chao cac ban!"); </script> </body> </html>

GIÁ TRỊ TRẢ VỀ CỦA HÀM

 Cú pháp

function tên_hàm(danh_sách_tham_số)

{ // nội dung hàm return giá_trị_trả_về;

}

 Lời gọi hàm

giá_trị = tên_hàm(danh_sách_tham_số);

VÍ DỤ

<html> <head> <title>Function 2</title> <script language="JavaScript"> function cong3so(x, y, z) { var t = x + y + z; return t; } </script> </head>

<body> <script language="JavaScript"> var t = cong3so(1, 2, 3); document.write(t); </script> </body> </html>

BIẾN TOÀN CỤC BIẾN ĐỊA PHƢƠNG

 Biến toàn cục

 Định nghĩa bên ngoài hàm

 Tồn tại từ khi đƣợc định nghĩa đến khi trang web đóng lại

 Có thể truy nhập từ mọi nơi

 Biến địa phƣơng

 Định nghĩa bên trong hàm

 Tồn tại từ khi đƣợc định nghĩa đến khi kết thúc hàm

 Chỉ truy nhập đƣợc ở bên trong hàm

VÕNG LẶP FOR

 Cú pháp

for (biến=giá_trị_bắt_đầu;

biến<giá_trị_kết_thúc;thay_đổi_giá_trị_biến)

{

// các lệnh cần lặp

}

 Lặp một đoạn mã theo số lần xác định

VÍ DỤ

<html> <head> <title>For Loop</title> </head>

<body> <script language="JavaScript"> var i = 0; for (i = 0; i < 10; i++) { document.write(i + "
"); } </script> </body> </html>

VÕNG LẶP WHILE

 Cú pháp

while (điều_kiện)

{

// các lệnh cần lặp

}

 Lặp khi nào điều kiện còn đúng

 Kiểm tra điều kiện trƣớc khi thực hiện lệnh

VÍ DỤ

<html> <head> <title>While Loop</title> </head>

<body> <script language="JavaScript"> var i = 0; while (i < 10) { document.write(i + "
"); i++; } </script> </body> </html>

VÕNG LẶP DO ... WHILE

 Cú pháp

do

{

// các lệnh cần lặp

}

while (điều_kiện);

 Lặp khi nào điều kiện còn đúng

 Kiểm tra điều kiện sau khi thực hiện lệnh

VÍ DỤ

<html> <head> <title>Do While Loop</title> </head>

<body> <script language="JavaScript"> var i = 0; do { document.write(i + "
"); i++; } while (i < 10); </script> </body> </html>

LỆNH BREAK VÀ LỆNH CONTINUE

 Lệnh break

 Thoát khỏi vòng lặp hiện tại

 Lệnh continue

 Chuyển tới vòng lặp tiếp theo

VÍ DỤ - LỆNH BREAK

<html> <head> <title>Break Statement</title> </head>

<body> <script language="JavaScript"> var i; for (i = 0; i < 10; i++) { if (i == 3) break; document.write(i + "
"); } </script> </body> </html>

VÍ DỤ - LỆNH CONTINUE

<html> <head> <title>Continue Statement</title> </head>

<body> <script language="JavaScript"> var i; for (i = 0; i < 10; i++) { if (i == 3) continue; document.write(i + "
"); } </script> </body> </html>

CÁC SỰ KIỆN TRONG JAVASCRIPT

 Là các hành động đƣợc xác định bởi JavaScript.

 Là thuộc tính của các thành phần trong HTML.

 Mỗi thành phần trong trang web có những sự kiện nào đó.

 Các sự kiện có thể kích hoạt các hàm

JavaScript.

MỘT SỐ SỰ KIỆN

 Mở, đóng một trang web

 Di chuyển chuột trên các đối tƣợng, nhấp chuột

vào các đối tƣợng

 Thay đổi giá trị các đối tƣợng

 Nhập ký tự từ bàn phím

HÀM XỬ LÝ SỰ KIỆN

 Là một hàm JavaScript

 Đƣợc thực hiện khi sự kiện xảy ra

 Cú pháp

sự_kiện="tên_hàm();"

SỰ KIỆN MỞ ĐÓNG TRANG WEB

 Mở một trang web

 onLoad

 Đóng một trang web

 onUnload

VÍ DỤ

<html> <head> <title>Load and Unload Event</title> <script language="JavaScript"> function load() { alert("Mo trang web"); } function unload() { alert("Dong trang web"); } </script> </head>

<body onLoad="load();" onUnload="unload();">

</body> </html>

SỰ KIỆN CHUỘT

 onMouseDown

 onMouseUp

 onMouseMove

 onMouseOver

 onMouseOut

VÍ DỤ

<html> <head> <title>Mouse Events</title> <script language="JavaScript"> function mouseDown() { alert("onMouseDown event"); } function mouseUp() { alert("onMouseUp event"); } function mouseMove() { alert("onMouseMove event"); } function mouseOver() {

function mouseOut() { alert("onMouseOut event"); } </script> </head>

<body> <img src="globe.png" onMouseDown="mouseDown();" onMouseUp="mouseUp();" onMouseMove="mouseMove();" onMouseOver="mouseOver();" onMouseOut="mouseOut();">

</body> </html>

alert("onMouseOver event"); }

SỰ KIỆN CHUỘT

 onClick

 onDblClick

VÍ DỤ

<html> <head> <title>Mouse Events</title> <script language="JavaScript"> function Click() { alert("onClick event"); } function DblClick() { alert("onDblClick event"); } </script> </head>

<body> <img src="globe.png" onClick="Click();" onDblClick="DblClick();"> </body> </html>

CÁC KÝ TỰ ĐẶC BIỆT

 Một số ký tự đặc biệt

 " „ & \

 Hiện ký tự đặc biệt sử dụng JavaScipt

 \" \‟ \& \\

\r \t

CÁC ĐỐI TƯỢNG TRONG JAVASCIPT

 JavaScript là một ngôn ngữ lập trình hướng đối tượng

 Mỗi đối tượng bao gồm các thuộc tính và phương thức

 Thuộc tính là giá trị gắn với đối tượng

 Ví dụ: một chuỗi có độ dài khác nhau

 Phương thức là hành động được thực hiện trên đối tượng

 Ví dụ: đổi các ký tự trong chuỗi thành chữ hoa

THUỘC TÍNH VÀ PHƢƠNG THỨC

 đối_tƣợng.thuộc_tính

 đối_tƣợng.phƣơng_thức()

ĐỐI TƢỢNG STRING

 Đƣợc tạo khi gán giá trị với một chuỗi

 Ví dụ: var st = "Hello"; // st là đối tƣợng chuỗi document.write(st.length); // thuộc tính

var stt1 = st.toUpperCase(); // phƣơng thức

 Thuộc tính

 length độ dài chuỗi (số ký tự)

MỘT SỐ PHƢƠNG THỨC

 charAt(index)

 trả về ký tự tại vị trí index trong chuỗi

 indexOf(searchvalue, fromindex)

 tìm vị trí của chuỗi ký tự searchvalue từ vị trí

fromindex

 nếu không tìm thấy thì trả về -1

 lastIndexOf(searchvalue, fromindex)

 giống indexOf nhƣng bắt đầu từ bên phải

MỘT SỐ PHƢƠNG THỨC

 match(searchString)

 trả về chuỗi searchString nếu tìm thấy, trả về null nếu không tìm thấy

 search(searchString)

 trả về vị trí chuỗi searchString nếu tìm thấy, trả về null nếu không tìm thấy

 substr(start, length)

 trích ra chuỗi ký tự có độ dài length bắt đầu tự vị trí start

ĐỐI TƢỢNG DATE

 Đƣợc sử dụng để làm việc với dữ liệu là thời gian

 Tạo đối tƣợng Date

 var myDate = new Date();

 sau khi khởi tạo, đối tƣợng lƣu trữ thời gian hiện tại

MỘT SỐ PHƢƠNG THỨC

 getDate()

 trả về dữ liệu là ngày (1 - 31)

 getDay()

 trả về dữ liệu là thứ (0 - 6)

 getMonth()

 trả về dữ liệu tháng (0 - 11)

 getFullYear()

 trả về dữ liệu năm, gồm 4 chữ số

MỘT SỐ PHƢƠNG THỨC

 getHours()

 trả về dữ liệu giờ (0 - 23)

 getMinutes()

 trả về dữ liệu phút (0 - 59)

 getSeconds()

 trả về dữ liệu giây (0 - 59)

MỘT SỐ PHƢƠNG THỨC

 setDate(day)

 Thiết lập ngày (1 - 31)

 setMonth(month)

 Thiết lập tháng (0 - 11)

 setFullYear(year)

 Thiết lập năm

MỘT SỐ PHƢƠNG THỨC

 setHours(hour)

 Thiết lập giờ (0 - 23)

 setMinutes(minute)

 Thiết lập phút (0 - 59)

 setSeconds(second)

 Thiết lập giây (0 - 59)

ĐỐI TƢỢNG ARRAY

 Lƣu trữ mảng dữ liệu

 Khai báo

var myArray = new Array();

 Gán dữ liệu cho mảng myArray[0] = "value1"; myArray[1] = "value2"; myArray[2] = "value3";

 Gán giá trị lúc khởi tạo

var myArray = new Array("value1", "value2", "value3");

TRUY NHẬP ĐỐI TƢỢNG MẢNG

 tên_mảng[chỉ_số]

 Ví dụ:

 document.write(myArray[0])

MỘT SỐ PHƢƠNG THỨC

 concat(array1, array2,...)

 ghép các mảng với nhau

 pop()

 trả về và xóa đối tƣợng cuối cùng trong mảng

 push()

 thêm 1 hoặc nhiều đối tƣợng vào sau mảng, trả về độ

dài mới

ĐỐI TƢỢNG MATH

 Thực hiện các hàm toán học

 Không khai báo đối tƣợng mới

 Sử dụng đối tƣợng toàn cục

MỘT SỐ THUỘC TÍNH

 Math.E

 hằng số Euler

 Math.PI

 hằng số PI

MỘT SỐ PHƢƠNG THỨC

 Math.abs(x)

 Math.cos(x)

 Math.sin(x)

 Math.log(x)

 Math.exp(x)

 Math.sqrt(x)

 Math.round(x)

 Math.pow(x, y)

ĐỐI TƢỢNG WINDOWS

 Là đối tƣợng ở mức cao nhất trong JavaScript

 Biểu diễn cho một cửa sổ trình duyệt

 Đƣợc tự động tạo khi có thẻ <body> hoặc

<frameset>

MỘT SỐ THUỘC TÍNH

 closed

 kiểm tra cửa sổ đƣợc đóng hay chƣa

 document

 đối tƣợng con Document

 history

 đối tƣợng con History

 location

 đối tƣợng con Location

 status

 dòng thông báo trên thanh trạng thái

MỘT SỐ PHƢƠNG THỨC

 alert(), comfirm(), prompt()

 open(), close()

 đóng mở cửa sổ

 focus()

 thiết lập focus cho cửa sổ

 setTimeout(code, millisec)

 thực hiện một đoạn mã sau một khoảng thời gian

VÍ DỤ

<html> <head> <title>Windows Object</title> <script language="JavaScript"> function open_new() { mywin = window.open(''); mywin.document.write('Day la cua so moi');

<body> <a onClick="open_new()">Mo cua so moi</a>
<a onClick="close_win()">Dong cua so</a> </body> </html>

} function close_win() { mywin.close(); } </script> </head>

ĐỐI TƯỢNG SCREEN

 Chứa thông tin về màn hình hiển thị

 screen.width, screen.height - chiều rộng,

chiều cao màn hình

 screen.availWidth, screen.availHeight - chiều rộng và chiều cao màn hình (không bao gồm thanh taskbar)

VÍ DỤ

<html>

<head>

<title>Screen Object</title>

</head>

<body>

<script language="JavaScript"> document.write("Kich thuoc man hinh: " + screen.width + "x" + screen.height);

</script>

</body>

</html>

ĐỐI TƯỢNG HISTORY

 Chứa thông tin về các địa chỉ đã được duyệt bởi trình duyệt

 Thuộc tính history.length chỉ ra số các địa chỉ trong history

 Phương thức

 history.go() nạp lại một địa chỉ cụ thể

 history.back() nạp lại địa chỉ trước địa chỉ hiện tại

 history.forward() nạp lại địa chỉ sau địa chỉ hiện tại

VÍ DỤ

<html> <head> <title>History Object</title> <script language="JavaScript"> function myFunc() { var num = prompt("Di chuyen den trang:"); history.go(num); } </script> </head>

<body>

<script language="JavaScript"> document.write("History Length: " + history.length + "
"); </script>

<a onClick="history.back()"> Trang truoc</a>
<a onClick="history.forward() "> Trang sau</a>

<a onClick="myFunc()">Di chuyen den trang xac dinh</a> </body> </html>

ĐỐI TƢỢNG DOCUMENT

 Biểu diễn toàn bộ thành phần nội dung của trang

HTML

 Đƣợc sử dụng để truy nhập đến các thành phần

THUỘC TÍNH

 title

 tiêu đề của trang web hiện tại

 URL

 địa chỉ của trang web hiện tại

VÍ DỤ

<html> <head> <title>Document Object</title> </head>

<body>

<script language="JavaScript"> document.write("Tieu de cua trang web: " + document.title + "
"); document.write("Dia chi trang web: " + document.URL + "
"); </script> </body> </html>

PHƢƠNG THỨC

 getElementById()

 trả về đối tƣợng thông qua ID của đối tƣợng đó

 đƣợc sử dụng để truy nhập đến đối tƣợng

 write()

 ghi một chuỗi lệnh HTML ra cửa sổ trình duyệt

 writeln()

 giống lệnh write(), nhƣng chèn thêm ký tự xuống

dòng

CÁC ĐỐI TƢỢNG DOCUMENT

CÁC ĐỐI TƢỢNG DOCUMENT

 Truy nhập thông qua thuộc tính của các đối tƣợng

 Thuộc tính innerHTML

 Nội dung văn bản mà đối tƣợng tác động

VÍ DỤ

<html> <head> <title>Document Object</title> <script language="JavaScript"> function changeColor() { document.getElementById("myBody").bgColor = "red"; } </script> </head>

<body id="myBody"> <a onClick="changeColor()">Thay doi mau nen</a> </body> </html>

VÍ DỤ

<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Thuoc tinh innerHTML</title> <script language="javascript"> function change() { document.getElementById("heading").innerHTML = "Tiêu đề đã thay đổi"; } </script> </head> <body> <h1 id="heading">Đây là tiêu đề đoạn văn</h1> <script language="javascript"> setTimeout("change()", 5000); </script> </body> </html>

BÀI TẬP

Bạn đang đọc truyện trên: AzTruyen.Top