Hãy nêu quá trình biên dịch của Javascript

Bằng các kiến thức đã học ở phần lý thuyết và nghiên cứu thêm trên internet, hãy nêu lại quá trình biên dịch của Javascript và cho một ví dụ minh họa cụ thể.

Bài giải

-------------------- ######## --------------------

Cũng như các ngôn ngữ lập trình khác, quá trình biên dịch của Javascript tuân thủ theo nguyên tắc chạy từ trên xuống và từ trái sang phải. Tuy nhiên có một điều khác so với các ngôn ngữ khác là trình biên dịch sẽ biên dịch cùng lúc cả HTML, CSS và Javascript, tức là nó gặp đoạn code nào trước thì sẽ biên dịch trước.

Ví dụ:

// (1) Chạy cái này trước
<input type="text" id="id_textbox" value=""/>

// (2) Rồi mới đến cái này
<style type="text/css">
    input{
        background: red
    }
</style>

// (3) Rồi mới chạy tới JS
<script language="javascript">
    var button = document.getElementById('id_button');
</script>

Nếu xét về quy trình biên dịch của mỗi Javascript thôi thì nội dung sẽ như sau: Trình biên dịch sẽ chạy từ trên xuống và từ trái sang phải, nó gặp đoạn code Javscript nào thì sẽ biên dịch ngay đoạn code đó. Nếu trong chương trình có sử dụng các lệnh comment (ghi chú) thì nó sẽ bỏ qua. Nếu nó gặp sự kiện window.onload thì những đoạn code nằm trong sự kiện này sẽ được xử lý sau cùng (cái này gọi là bất đồng bộ và ta sẽ học sau).

Ví dụ:

alert(1);

alert(2);

window.onload = function(){
    alert(3);
};

alert(4);

Trong ví dụ này thứ tự chạy sẽ là 1 - 2 - 4 - 3 vì vị trí thứ 3 nằm trong sự kiện onload.

Trong bài này mình sẽ không đề cập đến xử lý đồng bộ và bất đồng bộ bởi nó là kiến thúc nâng cao nên rất khó hiểu, vì vậy nội dung câu trả lời có thể sẽ thiếu một số ý. Nếu bạn là người mới học Javascript và đây là bài đầu tiên thì nó sẽ hơi khó hiểu, tuy nhiên bạn đừng lo lắng quá nhé, sau này qua các bài tiếp theo bạn sẽ tự hiểu ra và lúc đó bạn sẽ nhớ lâu hơn :)

Nguồn: freetuts.net