Các đối tượng dựng sẵn trong JavaScript

Một phần của tài liệu Kỹ năng lập trình web bct (Trang 68 - 72)

V. CÁC ĐỐI TƯỢNG JAVASCRIPT

V.2. Các đối tượng dựng sẵn trong JavaScript

Trong các phần trên ta đã nghiên cứu một số đối tượng của JavaScript: Function, RegExp, sau

đây ta sẽ nghiên cứu các đối tượng quan trọng khác của JavaScript 1.5: Date, Math, Number, String. JavaScript 2.0 ra đời năm 2003 với nhiều tham vọng hơn : lập trình cho server-side, là một ngôn ngữ lập trình hướng đối tượng, ta không nghiên cứu trong giáo trình này vì chưa có nhiều nhà phát triển ứng dụng web chấp nhận.

Ta có thể tạo ra một thể hiện của đối tượng từ các đối tượng có sẵn để sử dụng, lưu ý những vấn đề sau đây:

o Tạo đối tượng bằng toán tửnew : var tênĐốiTượng = new tênĐối tượng;

o Truy xuất các thuộc tính, phương thức public của đối tượng bằng toán tử chấm (.) (khi biết rõ tên thuộc tính, tên phương thức của đối tượng) hoặc bằng toán tử[ ] (khi không quan tâm đến tên của các thuộc tính của đối tượng)

Ví dụ 1:

var arr = new Array(5);

document.write(arr.length); // truy xuất thuộc tính length của đối tượng arr.

var toDay = new Date();

ngay = toDay.geteDate(); // truy xuất phương thức getDate() của toDay

document là một đối tượng của mô hình đối tượng tư liệu (DOM), ta thử liệt kê tên các phần tử của

đối tượng này phù hợp với một trình duyệt cụ thể: for(var prop in document)

document.write("document."+prop+" = "+document[prop]+"<br>");

// biến prop chứa giá trị là tên của thuộc tính của đối tượng document

// document[prop] chứa giá trị của thuộc tính có tên được chứa trong biến prop.

V.2.1. Đối tượng String

Để tạo ra một đối tượng String, ta sử dụng một trong 3 cú pháp:

 Sử dụng lệnh var và gán giá trị cho biến : var str = "Thành phốĐà Nẵng";

 Sử dụng toán tử gán : str = "Thành phố Hội An";

 Sử dụng toán tử new : var str = new String();

Thuộc tính : length , trả về chiều dài của chuổi ký tự

Phương thức : (các phương thức match, replace, search, splitđã trình bày trong phần Biểu thức

quy tắc)

Phương thức Mục đích

charAt(i) Trả về ký tự thứi trong chuổi, lưu ý ký tựđầu tiên của chuổi

có chỉ số 0.

charCodeAt(i) Trả về mã ASCII của ký tự thứi trong chuổi

concat(chuổi) Kết nối các chuổi. Ví dụ:

var str = "Da"; var newStr=str.concat(" Nang");

indexOf(chuổi con, chỉ số) Trả về vị trí xuất hiện lần đầu của chuổi con trong một chuổi bắt đầu tại vị trí chỉ số. Hàm trả về -1 nếu không tồn tại chuổi con, ngược lại có giá trị≥ 0

lastIndexOf(chuổi con, chỉ số) Trả về vị trí xuất hiện lần cuối của chuổi con trong một chuổi bắt đầu tại vị trí chỉ số.

substring(i,j) Trả lại chuổi con từ vị trí i đến j trong một chuổi Lưu ý : substring chứ không phải subString !

toLowerCase() Chuyến đổi sang dạng chữ hoa.

toUpperCase() Chuyến đổi sang dạng chữ thường.

replace(chuổi, chuổi thay thế) Thay chuổi bằng chuổi thay thế trong một đối tượng string split(ký tự nhận diện) Tách các giá trị trong một đối tượng string thành mảng các

chuổi con dựa vào ký tự nhận diện

Ví dụ : xây dựng một hàm kiểm tra tính hợp lệ của một địa chỉ e-mail function checkEmail(em){

trong= new RegExp(" "); cham = /\./;

acong=/@/;

// hợp lệ khi: không chứa khoảng trống, chứa @ ở vị trí >1, có ít nhất 1 dấu chấm sau ký tự @ ....

pos0=em.search(trong); // vị trí khoảng trắng, -1 nếu không có pos$=em.search(acong); // vị trí ký tự @

substr=em.substring(pos$+1,em.length); // chuổi ký tự sau dấu @ pos1=substr.search(cham);

ok=(pos0==-1)&&(pos$>0) &&(pos1>1); return ok;

}

if(!checkEmail(em)) alert("Nhap sai");

Nhận xét : Hàm này không ngắn gọn và tổng quát bằng cách chỉ sử dụng biểu thức quy tắc, nhưng trong sáng, dể hiểu, dể viết.

V.2.2. Đôi tượng Array

V.2.2.1. Mảng một chiều

Để tạo ra một đối tượng mảng bằng cách sử dụng đối tượng Array với một trong ba cách sau

đây:

var tênĐốiTượngMảng = new Array(cận trên); var tênĐốiTượngMảng = new Array();

Ta có thể tạo ra một đối tượng mảng và khởi tạo giá trị cho các phần tử của nó trong cùng một dòng lệnh:

var tênĐốiTượngMảng = new Array(phần tử 1, phần tử 2,..., phần tử N);

Trong đó cận trên là số phần tử tối đa mà mảng có thể lưu trữ, phần tửđầu tiên của mảng có chỉ số là 0.

Ví dụ :

var nhanVien = new Array(100);

var thanhPho = new Array("Ha Noi","Da Nang","Tp Ho Chi Minh");

JavaScript 1.5 cho phép ta tựđộng mở rộng mảng khi cần thiết, do vậy cách khai báo mảng nhưng không khai báo số phần tử tối đa thường được ưa chuộng. Số phần tử thật sự của đối tượng mảng được cập nhật trong thuộc tính lenght.

Ngoài ba phương pháp trên, ta có thể dùng hằng Array (Array literals) một danh sách các giá trị như mảng mà không dùng đối tượng Array. Ví dụ:

var thu =["Chủ nhật","Thứ hai", "Thứ ba","Thứ tư","Thứ năm", "Thứ sáu","Thứ bảy"]

V.2.2.2 Mảng nhiều chiều

JavaScript không thật sự hỗ trợ mảng nhiều chiều, nhưng ta có thể tạo ra mảng nhiều chiều bằng cách định nghĩa các mảng con như là các phần tử của mảng một chiều. Cú pháp:

var multiArray = new Array(); multiArray[0] = new Array(); multiArray[1] = new Array(); multiArray[2] = new Array();

V.2.2.3. Truy xut đến phn t ca mng

Ta truy xuất đến một phần tử của mảng thông qua chỉ số của phần tử, lưu ý rằng phần tửđầu tiên của mảng có chỉ số bằng zêro (0).

Ví dụ 1: Tính tổng n số nguyên nhập bằng bàn phím, lưu trữ dữ liệu nhập trong một mảng và in ra các phần tử của mảng đó.

var arr=new Array(); var j=0;

var sum=0 do {

i=parseInt(prompt("Nhap mot so nguyen",0)); arr[j]=i; // gán giá trị cho phần tử

j++;

}while(i>=0);

for(var i=0;i<arr.length;i++) document.write(arr[i]+" ");

Ví dụ 2: In ra màn hình các phần tử của một ma trận cở 3x4, với các phần tửđược lấy ngẫu nhiên.

var arr2=new Array(3); arr2[0]=new Array(4); arr2[1]=new Array(4); arr2[2]=new Array(4); for(i=0;i<3;i++){ for(j=0;j<4;j++){ arr2[i][j]=Math.round(Math.random(100)); // các hàm toán học document.write(arr2[i][j]+" ");} document.write("<br>");

}

V.2.2.4 Các thuộc tính

- lenght : Truy xuất hay thiết lập kích thước của mảng

- index : dùng trong Regular Expression, chứa chỉ số của chuổi con tìm thấy được. - input : dùng trong so khớp Regular Expression chứa pattern.

V.2.2.5 Các phương thức

- concat(array1, array2,..., arrayN): kết nối hai hoặc nhiều mảng thành một mảng.

- join(dấu phân cách) : nối tất cả phần tử của mảng thành một chuổi, các phần tử ngăn cách nhau bằng dấu phân cách.

- pop() : trả lại phần tử cuối cùng của mảng và loại bỏ nó ra khỏi mảng.

- push(phần tử 1, phần tử 2, ...) : bổ sung một hoặc nhiều phần tử vào mãng và trả lại chiều dài mới của mảng.

- reverse() : đảo thứ tự các phần tử của mảng - shift(): ngược lại với phương thức pop().

- slice(bắt đầu, kết thúc) : tạo một mảng con từ một mảng đã có, mảng con có các phần tử từ chỉ

số bắt đầu đến chỉ số kết thúc.

- sort(tên hàm) : sắp xếp các phần tử trên mảng. Lưu ý: phương thức sort() sắp xếp các phần tử

của mãng dựa trên mã ASCII, nếu muốn sắp xếp theo một hàm nào đó thì sử dụng cú pháp tênMảng.sort(hàm())

Ví dụ :

var arr = new Array(5,4,3,2,1); arr.sort(); // sắp tăng dần

for(i=0; i<=arr.length; i++) document.write(arr[i]); arr.reverse(); // đảo ngược thứ tự các phần tử

for(i=0; i<=arr.length; i++) document.write(arr[i]);

VI.2.3. Đối tượng Math

Đối tượng Math của JavaScrip cung cấp các hàm và các chức năng toán học. Đối tượng Math không được sử dụng để tạo đối tượng, các thành phần của Math đều có tính static nên có thể truy xuất trực tiếp.

Các hằng số: E (hằng Euler), PI (số Pi), ...

Các phương thức :

Phương thức Mục đích

abs(x) Trả về giá trị tuyệt đối của x

ceil(x) Trả về số nguyên lớn gần nhất và lớn hơn x floor(x) Trả về số nguyên gần nhất và nhỏ hơn x round(x) Làm tròn x đến số nguyên gần nhất exp(x) Trả về ex với E là hằng Euler log(x) Trả về logarith tự nhiên của x

pow(x,y) Trả về xy

sqrt(x) Trả về căn bậc hai của x

min(x,y), max(x,y) Trả về giá trị nhỏ nhất/ lớn nhất giữa hai giá trị

random() Trả về một số ngẫu nhiên nằm trong phạm vi 0-1

V.2.4. Đối tượng Date

Từ phiên bản JavaScript 1.3, đối tượng Date có thể xử lý các ngày trong phạm vị 270 ngàn năm trong quá khứ cũng như tương lai, khác với các phiên bản cũ chỉ xử lý các ngày sau Epoch tức thời điểm bắt đầu của Unix (01.01.1970). Với một đối tượng Date ta có thể truy xuất và thiết lập các giá trị về : năm, tháng, ngày, giờ, phút, giây và phần nghìn của giây thông qua các phương thức của

Tạo đối tượng Date : theo một trong bốn phương pháp sau var someDate = new Date(); // trả về ngày hiện tại var someDate = new Date(1014744562000); // số mili giây trôi qua kể từ Epoch var someDate = new Date('Tue Feb 26 12:29:22 EST 2002');

var someDate = new Date(2002,1,26,12,29,22,00);

Các phương thức truy xuất và thiết lập ngày, giờđịa phương.

- Truy xuất các giá trị về ngày, giờ : getYear(), getFullYear(), getMonth(), getDate(), getHours(), getMinutes(), getSeconds() và getMilliseconds().

- Thiết lập các giá trị về ngày giờ : setYear(), setFullYear(), setMonth(), setDate(), setHours(), setMinutes(), setSeconds() và setMilliseconds().

Các phương thức chuyển kiểu dữ liệu ngày tháng sang chuổi ký tự: toString(), toDateString().

Lưu ý : JavaScript chấp nhận 0-11 biểu thị các tháng của năm và 0-6 biểu thị các ngày trong tuần.

Một phần của tài liệu Kỹ năng lập trình web bct (Trang 68 - 72)