Trong phần 1, mình sẽ giới thiệu về JavaScript, một ngôn ngữ lập trình rất phổ biến đã phát triển thành công nghệ nền tảng cho web và nhiều nền tảng khác. Tìm hiểu về đặc điểm quan trọng của JavaScript như ngôn ngữ thông dịch, định kiểu yếu và hướng sự kiện. Khám phá phương pháp học hiệu quả thông qua xây dựng nền tảng vững chắc, thực hành liên tục và tạo dự án thực tế. Cuối cùng, tìm hiểu ba cách tích hợp JavaScript vào trang web: internal, external và inline, cùng xu hướng hiện đại sử dụng ES modules.
Javascript được tạo ra bởi Brendan Eich vào năm 1995 tại Netscape, ban đầu với tên “LiveScript” và sau đó được đổi tên để tận dụng sự phổ biến của Java. Đây là một ngôn ngữ lập trình động, đa mô hình hỗ trợ lập trình hướng đối tượng, hàm và sự kiện.
Đặc điểm nổi bật của Javascript:
Tầm quan trọng của Javascript hiện nay:
Sự phát triển của Javascript:
let/const
, arrow functions, classes, modules, promises…this
keywordCó một số lưu ý tránh hiểu nhầm về thẻ script như sau:
Vì vậy, thường nên để ở cuối body để script chạy sau cùng khi DOM được tải!
Đặt code Javascript trực tiếp trong tài liệu HTML bằng thẻ <script>
:
<button id="btn">Run code</button>
<!-- Đặt script ở cuối body để đảm bảo DOM đã tải -->
<script>
// Code ở đây sẽ chạy sau khi DOM đã tải
console.log('Script at end of body is running');
const btn = document.getElementById('btn');
btn.addEventListener('click', () => {
alert('Xin chào từ script cuối body!');
});
</script>
Ưu điểm:
Nhược điểm:
Tạo file JS riêng và liên kết vào HTML:
<!DOCTYPE html>
<html>
<head>
<title>External Javascript</title>
<!-- Cách tốt nhất là đặt script ở cuối body -->
<!-- Hoặc sử dụng defer để tải không đồng bộ nhưng thực thi sau khi DOM sẵn sàng -->
<script src="./script.js" defer></script>
</head>
<body>
<button id="btn">Run code</button>
</body>
</html>
// script.js
const btn = document.getElementById('btn');
btn.addEventListener('click', () => {
alert('Xin chào!');
});
// Có thể tổ chức thành các modules
import { showMessage } from './utils.js';
// dblclick có nghĩa là Double Click
btn.addEventListener('dblclick', () => {
showMessage('Double click detected!');
});
Ưu điểm:
Thuộc tính nâng cao:
async
: Tải không đồng bộ, thực thi ngay khi tải xong (có thể trước khi DOM sẵn sàng)defer
: Tải không đồng bộ, thực thi sau khi DOM sẵn sàngtype="module"
: Cho phép sử dụng ES modules (import/export)<!-- Tải không đồng bộ, thực thi ngay khi tải xong -->
<script src="analytics.js" async></script>
<!-- Tải không đồng bộ, thực thi sau khi DOM sẵn sàng -->
<script src="main.js" defer></script>
<!-- Sử dụng ES modules -->
<script src="app.js" type="module"></script>
Gắn code trực tiếp vào các thuộc tính HTML:
<button onclick="alert('Xin chào!');">Say Hello!</button>
Ưu điểm:
Nhược điểm:
Thực ra chúng vẫn là external thôi, nhưng mình tách ra vì nó thêm phần module ấy mà…
<script type="module" src="main.js"></script>
// utils.js
export const formatDate = (date) => {
return new Intl.DateTimeFormat('vi-VN').format(date);
};
export const showNotification = (message) => {
// Implementation
};
// main.js
import { formatDate, showNotification } from './utils.js';
document.getElementById('currentDate').textContent = formatDate(new Date());
document.getElementById('notifyBtn').addEventListener('click', () => {
showNotification('Thông báo mới!');
});
Ưu điểm:
Javascript là ngôn ngữ lập trình không thể thiếu trong phát triển web hiện đại, với khả năng chạy ở cả client và server-side. Học Javascript hiệu quả đòi hỏi sự kết hợp giữa nắm vững kiến thức nền tảng và thực hành thường xuyên. Việc tích hợp Javascript vào trang web có thể thực hiện qua nhiều cách, mỗi cách có ưu và nhược điểm riêng, nhưng xu hướng hiện đại là tổ chức code thành các module riêng biệt và sử dụng external Javascript để dễ bảo trì.Í