JavaScript學習第一站

初識JavaScript

JavaScrip是解釋性語言

什麼是解釋性語言?

就是不需要在運行前編譯,在運行程序的時候才翻譯,專門的解釋器負責在每個語句執行的時候解釋程序代碼。

那麼什麼是編譯性語言?

是在在執行之前需要一個專門的編譯過程,把程序編譯成爲機器語言的文件,運行時不需要重新翻譯,直接使用編譯的結果就行了

那麼解釋性語言與編譯性語言的區別在哪兒?

編譯性語言
先通篇翻譯,全部讀完後翻譯然後生成一個編譯好後的編譯文件,再執行這個編譯好的文件

  • 優點:執行速度快
  • 不足:移植性不好(所謂的不跨平臺)

解釋性語言
讀一行翻譯一行,一遍翻譯一邊執行,不會生成文件

  • 優點:跨平臺
  • 不足:相對而言慢一點

注:

java既不是編譯性語言,也不是解釋性語言,java是一種oak的面嚮對象語言

JavaScript是單線程的

爲什麼JavaScript是單線程?

JavaScript語言的一大特點就是單線程,也就是說,同一個時間只能做一件事。那麼,爲什麼JavaScript不能有多個線程呢?這樣能提高效率啊。

  • 這個要回到Js歷史了,布蘭登·艾奇(Brendan
    Eich)
    老哥用10天創造js。當時js用來幹嘛,簡單的瀏覽器交互,驗證,操作一下DOM是吧。那把它設計成那麼複雜幹什麼,而且如果多線程的話,操作DOM會出現麻煩的事情,假設一個線程讀取DOM節點數據的同時,另一個線程把那個DOM節點刪了,呵呵。所以JS一個線程就夠了,也就是一步一步順序運行下來。
  • JavaScript的單線程,與它的用途有關。作爲瀏覽器腳本語言,JavaScript的主要用途是與用戶互動,以及操作DOM。這決定了它只能是單線程,否則會帶來很複雜的同步問題。比如,假定JavaScript同時有兩個線程,一個線程在某個DOM節點上添加內容,另一個線程刪除了這個節點,這時瀏覽器應該以哪個線程爲準?
    爲了利用多核CPU的計算能力,HTML5提出Web Worker標準,允許JavaScript腳本創建多個線程,但是子線程完
    全受主線程控制,且不得操作DOM。所以,這個新標準並沒有改變JavaScript單線程的本質。

JavaScript的組成(三大部分)

  • ECMAScript
  • DOM
  • BOM
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章