日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

js string转number_Node.js 和 C++ 之间的类型转换

發(fā)布時間:2023/12/15 c/c++ 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 js string转number_Node.js 和 C++ 之间的类型转换 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

我非常喜歡使用 Node.js,但是當涉及到計算密集型的場景時 Node.js 就不能夠很好地勝任了。而在這樣的情況下 C++ 是一個很好的選擇,非常幸運 Node.js 官方提供了 C/C++ Addons 的機制讓我們能夠使用 V8 API 把 Node.js 和 C++ 結(jié)合起來。

雖然在 Node.js 官方網(wǎng)站有很多的關于怎么使用這些 API 的文檔,但是在 JavaScript 和 C++ 之間傳遞數(shù)據(jù)是一件非常麻煩的事情,C++ 是強類型語言(”1024” 是字符串類型而不是整數(shù)類型),而 JavaScript 卻總是默認的幫我們做一些類型轉(zhuǎn)換。

JavaScript 的基本類型包括 String,Number,Boolean,null,undefined,V8 使用類繼承的方式來定義這類型,這些類型都繼承了 Primitive 類,而 Primitive 繼承了 Value,v8 也支持整型(包括 Int32 和 Uint32),而所有的類型定義都可以從 V8 類型文檔中看到,除了基本的類型,還有 Object,Array,Map 等類型的定義。

基本類型的繼承關系如下圖:

在 V8 中所有 JavaScript 值都是被放在 Local 對象中,通過這個對象指定了 JavaScript 運行時的內(nèi)存單元。

下面這段代定義了一個 Number 類型的值,其中 Test 函數(shù)中聲明的 isolate 變量代表著 V8 虛擬機中的堆內(nèi)存,當創(chuàng)建新變量的時候就需要用到它,接下來的一行代碼就通過 isolate 聲明了一個 Number 類型的變量。

#include #include using namespace v8;void Test(const v8::FunctionCallbackInfo<:value>& args) { Isolate* isolate = args.GetIsolate(); // 聲明變量 Local retval = v8::Number::New(isolate, 1000);}void init(Local exports, Local module) { NODE_SET_METHOD(exports, "getTestValue

總結(jié)

以上是生活随笔為你收集整理的js string转number_Node.js 和 C++ 之间的类型转换的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。