我们团队非常喜欢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等类型的定义。
基本类型的继承关系如下图: