NodeJS和C++之间的类型转换

2020-11-11  |  阅读:  |  文章来源:佛山网站建设
  我们团队非常喜欢Node.js,但是当涉及到计算密集型的场景时 Node.js 就不能够很好地胜任了。而在这样的情况下 C++ 是一个很好的选择,非常幸运 Node.js 官方提供了C/C++ Addons 的机制让我们能够使用 V8 API 把 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 等类型的定义。

  基本类型的继承关系如下图:
佛山网站建设   在 V8 中所有 JavaScript 值都是被放在 Local 对象中,通过这个对象指定了 JavaScript 运行时的内存单元。

  下面这段代定义了一个 Number 类型的值,其中 Test 函数中声明的 isolate 变量代表着 V8 虚拟机中的堆内存,当创建新变量的时候就需要用到它,接下来的一行代码就通过 isolate 声明了一个 Number 类型的变量。
#include <node.h> #include <v8.h>  using namespace v8;  void Test(const v8::FunctionCallbackInfo& args) {     Isolate* isolate = args.GetIsolate();     // 声明变量     Local retval = v8::Number::New(isolate, 1000); }  void init(Local 
标签: 佛山网站建设网页设计网页制作网站制作企业网站建设做网站佛山网络营销佛山网站优化
上一篇:移动端商城网站建设注意事项 盘点10个细节 下一篇: 2020年电商网站设计趋势解读 用户体验是关键

网页设计

联系建站公司
佛山市顺德区大良凤翔商业广场二座670
网站建设/网站优化:13715431176
建站公司业务邮箱:sale@fslingdu.com
专业业务范围: 找公司建网站 广州网站建设 免费建站 如何自己建一个网站 建网站多少钱 如何制作网站 免费一键搭建网站 网站建设方案 为您提供一站式网站规划服务
粤ICP备16067714号-3
Copyright © 佛山市区零度飞易信息科技有限公司