C++是編譯型語言,JavaScript是解釋型語言:
C++的編譯過程:預處理->編譯->彙編->鏈接
JavaScript編譯過程:預處理->解釋執行
C++是靜態語言(強類型語言),JavaScript是動態語言(弱類型語言):
靜態語言在編譯時確定變量的數據類型,因此在變量使用前必須聲明變量類型。並且編譯時會進行類型匹配檢查,因此不給變量的賦不同類型的值。
動態語言在運行時確定變量的數據類型,在使用前無需聲明變量類型。並且在運行過程中可以給變量賦不同類型的值。
靜態語言IDE開發過程中會對類型嚴格限制,開發過程中便可減少一些錯誤,適合邏輯業務複雜、大型的、生命週期長的系統。但是靈活性相對較差。
動態語言比較靈活,代碼更加簡潔,可以讓開發者將更多精力放在邏輯思考上。運行速度相對慢一些,開發過程中難以檢測錯誤。
JavaScript是函數式編程語言,C++不是:
JavaScript中函數當做對象來使用,可以將函數作爲另一個函數的輸入輸出。
C++需通過函數指針實現高階函數。
C++有指針,JavaScript無指針:
在C++中的賦值,所有的基本類型都是直接複製,而自定義類型因爲有指針的存在,可以自己選擇進行深複製(複製)還是淺複製(引用)。
而在Javascript中,所有的基本類型賦值都是複製,而所有的其他類型賦值都是引用。
JavaScript有閉包,C++沒有