Hàm Date()

Ngoài được sử dụng như một hàm xây dựng (hay constructor function) để tạo đối tượng mới thì hàm Date trong JavaScript còn được sử dụng như một hàm thông thường.

Bạn có thể kiểm tra điều náy sử dụng trình duyệt web bằng cách mở công cụ Developer Tools click chọn tab Console và sau đó chạy câu lệnh JavaScript sau:

typeof Date // Hiển thị: "function"
Date(); // Hiển thị ngày hiện tại, ví dụ: "Sun Mar 18 2018 14:37:21 GMT+0700 (+07)"

Điều này nghe có vẻ khá rắc rối cho các bạn bạn mới làm quen với JavaScript, tuy nhiên để giúp bạn có thể hiểu rõ hơn chúng ta cùng nhau đi qua khảo sát một ví dụ cụ thể.

Hàm Constructor và Hàm Thông Thường

Giả sử chúng ta có một hàm tạo dựng với tên Country như sau:

function Country(name) {
    this.name = name;
    return "Vietnam";
}

Thì lúc này chúng ta có thể sử dụng Country như một hàm tạo dựng (hay constructor function) để tạo một object mới:

var myCountry = new Country("American");
myCountry.name // Hiển thị: "American"

Và chúng ta cũng có thể gọi trực tiếp hàm trên:

Country(); // Hiển thị: "Việt Nam"

Như vậy hàm Country() ở trên vừa có thể được sử dụng như một hàm tạo dựng vừa có thể được sử dụng như một hàm thông thường.

Hàm Date()

Khi sử dụng Date như một hàm thông thường và gọi hàm này thì JavaScript sẽ trả về ngày giờ hiện tại theo kiểu chuỗi:

var dateString = Date();
console.log(dateString); // Hiển thị ngày hiện tại, ví dụ: "Sun Mar 18 2018 14:37:21 GMT+0700 (+07)"

Khi gọi hàm Date() như trên JavaScript trả về thông tin bao gồm thêm các thông tin khác như thứ và giờ phút hiện tại.

Kiểm tra kiểu dữ liệu trả về từ hàm:

js typeof(Date()) // hiển thị "string"

Bạn cũng có thể truyền vào đối số cho hàm này khi gọi tuy nhiên điều này không có tác dụng tới giá trị trả về:

var dateString = Date("January 01, 2018 09:00:00");
console.log(dateString); // Hiển thị: "Sun Mar 18 2018 14:43:56 GMT+0700 (+07)"

Như bạn có thể thấy ở trên thì kết quả trả về không thay đổi như khi gọi hàm Date() mà không có đối số nào mà chúng ta đã làm ở ví dụ trước đó.

Content must not be empty

Related Tutorial