Hàm (function)
JavaScript có nhiều hàm định nghĩa trước mà chúng ta sẽ dùng trong script. Ví dụ, nếu chúng ta muốn kiểm tra người dùng có phải nhập vào một số hay không, chúng ta có thể sử dụng hàm isNaN (Not a Number) để thực hiện điều này . Trong phần này chúng ta sẽ xem dét một vài hàm JavaScript định nghĩa sẵn.
- hàm eval
Hàm eval được dùng để đánh giá một chuỗi và không cần tham chiếu đến bất kỳ một đối tượng cụ thể nào.
eval(string)
Chuỗi có thể là một biểu thức JavaScript, câu lệnh, hoặc một nhóm các câu lệnh. Trong biểu thức có thể bao gồm các biến và thuộc tính của một đối tượng.
Nếu chuỗi được xác định là một biểu thức, hàm eval sẽ tính toán biểu thức. Nếu nó là một hoặc một tập các lệnh, nó sẽ thực thi các câu lệnh. Ví dụ, chúng ta tạo biểu thức theo mẫu như chuỗi sau - - “3 * 5”. Chúng ta có thể dùng eval để tính toán ra kết quả.
- Hàm isNaN
Hàm isNaN được dùng để kiểm tra xem đối số truyền vào có phải là một số hay không.
isNaN(testValue)
Tạo hàm do người dùng định nghĩa
Môt hàm JavaScript khá giống với «thủ tục » ("procedure") hay « chương trình con » ("subroutine") trong ngôn ngữ lập trình. Một hàm là một tập các câu lệnh,,thực hiện các tác vụ xác định. Chúng ta có thể truyền các giá trị (tham số) cho hàm.Hàm cũng có thể trả về một giá trị.
Các thành phần của một hàm là:
- Từ khoá function.
- Tên hàm.
- Danh sách các đối số của hàm cách nhau bởi dấu phẩy (,) đặt trong cặp ngoặc đơn( ).
- Các câu lệnh của hàm đặt trong cặp dấu móc {}.
function funcName(argument1,argument2,etc)
{ statements; }
Một hàm có thể không có đối số, nhưng chúng ta vẫn phải có cặp dấu ngoặc đơn ( ).
funcName().
Các hàm không thể lồng nhau.
Định nghĩa hàm
Trước khi chúng ta gọi hàm, chúng ta phải định nghĩa nó trong chương trình. Định nghĩa một hàm là một quá trình khai báo tên của hàm và các lệnh sẽ được thực thi khi gọi hàm.
Gọi một hàm
Để thực thi một hàm, ta phải gọi nó. Để gọi một hàm ta chỉ ra tên hàm và danh sách các tham số nếu có:
<html>
<head>
<script language="JavaScript">
<!--
function hello( )
{
document.write ('Hello.');
document.write ('Welcome to the hello( ) function.');
return;
}
Function sum_up ( one, two)
{
var result = one + two;
return result;
}
function sum_all ( )
{
var loop=0, sum=0;
for ( loop = arguments.length-1; loop >=0; loop--)
sum += arguments[loop];
return sum;
} // Add it up now
hello ( );
var total = sum_up(7, 9);
document.write ( total + ' ' + sum_up ( 8, 15));
document.write ( ' ' + sum_all ( 1, 5, 8,7, 6) );
//-->
</script>
</head>
</html>
Kết quả:
Câu lệnh return
Câu lệnh này được dùng để trả về một giá trị. Dùng lệnh return trong một hàm là không bắt buộc vì không phải tất cả các hàm đều trả về một giá trị cụ thể.
Cú pháp là:
return value;
Or
return ( value ) ;
<html>
<head>
<script language="JavaScript">
function testreturn(x) {
var i = 0;
while (i < 6) {
if (i == 3)
break
i++
}
document.write (i*x);
return (i*x);
}
</script>
</head>
<BODY>
<SCRIPT>
testreturn(4);
</SCRIPT>
</BODY>
</html>
Tại bất kì lúc nào, chúng ta cũng có thể thoát ra khỏi hàm đơn giản chỉ cần sử dụng lệnh return mà không cần đến bất kì cấu trúc phức tạp nào. Quyền điều khiển ngay lập tức trả về cho câu lệnh đứng sau lệnh gọi hàm.
Mảng
Có những lúc ta muốn lưu nhiều giá trị vào trong một biến. Khi đó ta sử dụng mảng. Mảng được dùng để lưu một tập hợp các biến có cùng tên. Chỉ số của mảng dùng để phân biệt các biến này. Trong JavaScript chỉ số của mảng bắt đầu từ 0.
Tuy nhiên, JavaScript không có kiểu dữ liệu mảng. Nhưng nó có một đối tượng mảng được xây dựng sẵn. Để dùng mảng trong chương trình, ta phải sử dụng đối tượng mảng và các phương thức của nó.
- Tạo mảng
Cấu pháp sau đây dùng để tạo một mảng:
arrayObjectName = new Array([element0, element1, ..., elementN])
Trong đó arrayObjectName là tên của đối tượng mảng, ,và elementN là danh sách các giá trị của các phần tử mảng. Mảng được khởi tạo với các giá trị xác định như là các phần tử của nó. Thuộc tính length lưu số lượng các phần tử có trong mảng.
- Thêm các phần tử
Chúng ta có thể đưa các phần tử vào một mảng ngay khi chúng ta tạo nó. Chúng ta cũng có thể đưa dữ liệu vào một mảng bằng cách gán giá trị cho các phần tử của nó.
emp[0] = "Ryan Dias"
emp[1] = "Graham Browne"
emp[2] = "David Greene"
| Ryan Dias | Graham Browne | David Greene |
Đoạn mã trên tạo ra một một mảng và gán giá trị cho từng phần tử của nó.
<html>
<head>
<script language="JavaScript">
<!--
emp = new Array(3)
emp[0] = "Ryan Dias"
emp[1] = "Graham Browne"
emp[2] = "David Greene";
document.writeln(emp[0]);
document.writeln(emp[1]);
document.writeln(emp[2]);
//-->
</script>
</head>
</html>
Kết quả:
-
Truy cập các phần tử mảng
Có hai cách để truy cập các phần tử của mảng. Chúng ta có thể:
- Chỉ ra tên của phần tử.
emp [“Ryan Dias”]
- Chỉ ra chỉ số của phần tử.
emp [0]
- Chỉ ra tên của phần tử.
-
Sử dụng các phương thức của mảng:
Để thao tác trên mảng, chúng ta phải dùng các phương thức của đối tượng mảng.
Phương thức Mô tả Join Kết hợp các phần tử của mảng thành một chuỗi Pop Trả về phần tử cuối cùng của mảng, sau khi xoá nó từ mảng. Push Thêm một hoặc nhiều phần tử vào cuối mảng. Trả lại phần tử cuối cùng thêm vào. Reverse Đảo ngược các phần tử của mảng: phần tử đầu tiên của mảng trở thành phần tử cuối cùng và phần tử cuối cùng trở thành phần tử đầu tiên. Shift Xoá phần tử đầu tiên của mảng và trả về phần tử đó. Sort Sắp xếp các phần tử của mảng. -
Phương thức sort
Phương thức emp.sort () sẽ sắp xếp mảng dưới đây
<html> <head> <script language="JavaScript"> <!-- emp = new Array(3) emp[0] = "Ryan Dias" emp[1] = "Graham Browne" emp[2] = "David Greene"; emp.sort(); document.writeln(emp[0]); document.writeln(emp[1]); document.writeln(emp[2]); //--> </script> </head> </html>Kết quả:
JavaScript: Sắp xếp các mảng (Sorting Arrays)
-
Phương thức sort
-
Mảng nhiều chiều
Một mảng có thể có nhiều hơn một chiều.
Ta có thể tạo ra một mảng hai chiều để lưu trữ mã nhân viên và tên của nhân viên đó.
Mảng hai chiều Đoạn mã dưới đây tạo ra một mảng hai chiều và cho hiển thị giá trị của một trong những phần tử trong mảng.
<HTML> <HEAD> <SCRIPT LANGUAGE = "JavaScript"> <!-- MyArray = new Array(5,5); MyArray[0, 0] = "Ryan Dias"; MyArray[0, 1] = 1; MyArray[1, 0] = "Mike Donne"; MyArray[1, 1] = 2; MyArray[2, 0] = "Joe Dean"; MyArray[2, 1] = 3; MyArray[3, 0] = "Robert Matey"; MyArray[3, 1] = 4; document.write ("The name is " + MyArray[3, 0]); document.write("and the code is " + MyArray[3,1]); --> </SCRIPT> </HEAD> </HTML>Kết quả:
Mảng hai chiều (Two dimensional Array)