kiến thức [Event Tặng Title] Hướng dẫn học Javascript từ 0-> Nâng cao.

Em mới học về lập trình Web (HTML, CSS cơ bản, JS viết được mấy cái console.log và phép tính), nay em mới học đến DOM thì em hơi bị rối. Mong mn (dù mới học hay pro rồi) giải đáp giúp với ạ
Code:
const paragraphs = document.querySelectorAll("p");
// paragraphs[0] is the first <p> element
// paragraphs[1] is the second <p> element, etc.
alert(paragraphs[0].nodeName);
Thứ nhất là em vẫn chưa hiểu rõ lắm DOM là gì? Nếu search Google thì nó lại ra khái niệm DOM là web API gì đó, nhưng lúc đó lại có câu hỏi: API là gì???
Ví dụ trong đoạn code trên, thì document (có vẻ như là một object), sau đó dùng . để truy cập vào method của object đó là method querrySelectorAll(). Thì cái document, và method querrySelectorAll đó ở đâu ra vậy (mình không hề viết, cũng như không include/import gì như trong C++/Java mà tại sao vẫn dùng được), hay những object đó là JS có sẵn rồi?
Thứ hai là DOM có phải là một phần của NNLT JavaScript không? Có phải chỉ NNLT JS mới dùng/thao tác được với DOM không, hay các NNLT khác như C/C++ cũng có thể thao tác được với DOM? Tại sao lại hay dùng JS để thao tác với DOM?
Thứ nữa là tại sao phải có DOM? Theo như em tìm hiểu thì HTML sau khi được Web browser (Google Chrome, IE, FF) load thì sẽ tiến hành parse HTML -> biến thành một tree gồm các nodes, mỗi node là một object. Lí do bởi vì JS là một NNLT có OOP (tức sẽ thao tác với các object), việc parse HTML (chuyển từ elements/tage biến thành object) nhằm giúp JS thao tác được với các object này, qua đó sửa/xóa các object -> giúp website response được với interact của người dùng? Không biết em hiểu như này có đúng chưa?
1. DOM là một cấu trúc dạng cây đại diện cho cấu trúc của file HTML, nó là web API. Vậy APIs là gì? Ví dụ trong mô hình Client-Server, phía client cần truy vấn dữ liệu (request) từ server, server trả (response) dữ liệu cho client, vậy làm sao để 2 thằng này giao tiếp với nhau? Cổng giao tiếp giữa Client-Server, hay giữa các chương trình để trao đổi dữ liệu thường đc gọi là APIs. Việc truy vấn, trao đổi dữ liệu này thường tuân theo những quy định sẵn có của APIs đó (APIs nhận tham số gì, trả về dữ liệu gì...), ví dụ trong đoạn code bác up kèm theo, thì document đúng là 1 object, và đúng là nó có querySelectorAll là 1 method, nó là web API đã được tạo ra sẵn cho mình dùng và khi dùng mình phải làm theo những gì nó yêu cầu, đa phần web APIs sẽ được viết doc lại đàng hoàng để những người sử dụng APIs đó biết cách dùng, ví dụ như này.
2. Như bác midnight_sun nói. DOM là web APIs không phụ thuộc NNLT.
3. Tại sao phải có DOM? DOM đc tạo ra để chuẩn hóa việc thêm, sửa, xóa nội dung, cấu trúc của HTML documents. Như bác hiểu cũng đúng rồi đấy, JS thao tác với các objects này thông qua DOM.
 
Last edited:
Back
Top