我們團隊非常喜歡Node.js,但是當涉及到計算密集型的場景時Node.js就不能夠很好地勝任了。而在這樣的情況下C++是一個很好的選擇,非常幸運Node.js官方提供了C/C++Addons的機制讓我們能夠使用V8API把Node.js和C++結合起來。
雖然在Node.js官方網站有很多的關于怎么使用這些API的文檔,但是在JavaScript和C++之間傳遞數據是一件非常麻煩的事情,C++是強類型語言(”1024”是字符串類型而不是整數類型),而JavaScript卻總是默認的幫我們做一些類型轉換。
JavaScript的基本類型包括String,Number,Boolean,null,undefined,V8使用類繼承的方式來定義這類型,這些類型都繼承了Primitive類,而Primitive繼承了Value,v8也支持整型(包括Int32和Uint32),而所有的類型定義都可以從V8類型文檔中看到,除了基本的類型,還有Object,Array,Map等類型的定義。
基本類型的繼承關系如下圖: