全球旧事资料 分类
NodeJS和C之间的类型转换
虽然在Nodejs官方网站有很多的关于怎么使用这些API的文档,但是在JavaScript和C之间传递数据是一件非常麻烦的事情,C是强类型语言(”1024”是字符串类型而不是整数类型),而JavaScript却总是默认的帮我们做一些类型转换。
作者:慎里来源:慎里201612071123收藏分享
我非常喜欢使用Nodejs,但是当涉及到计算密集型的场景时Nodejs就不能够很好地胜任了。而在这样的情况下C是一个很好的选择,非常幸运Nodejs官方提供了CCAddo
s的机制让我们能够使用V8API把Nodejs和C结合起来。
虽然在Nodejs官方网站有很多的关于怎么使用这些API的文档,但是在JavaScript和C之间传递数据是一件非常麻烦的事情,C是强类型语言(”1024”是字符串类型而不是整数类型),而JavaScript却总是默认的帮我们做一些类型转换。JavaScript的基本类型包括Stri
g,Number,Boolea

ull,u
defi
ed,V8使用类继承的方式来定义这类型,这些类型都继承了Primitive类,而Primitive继承了Value,v8也支持整型(包括I
t32和Ui
t32),而所有的类型定义都可以从V8类型文档中看到,除了基本的类型,还有Object,Array,Map等类型的定义。
f基本类型的继承关系如下图:
在V8中所有JavaScript值都是被放在Local对象中,通过这个对象指定了JavaScript运行时的内存单元。
f下面这段代定义了一个Number类型的值,其中Test函数中声明的isolate变
量代表着V8虚拟机中的堆内存,当创建新变量的时候就需要用到它,接下来
的一行代码就通过isolate声明了一个Number类型的变量。
1i
clude
odeh2i
cludev8h
3
4usi
g
amespacev8
5
6voidTestco
stv8Fu
ctio
CallbackI
fov8Valueargs7IsolateisolateargsGetIsolate8声明变量9LocalNumberretvalv8NumberNewisolate100010
11
12voidi
itLocalObjectexportsLocalObjectmodule13NODE_SET_METHODexports
好听全球资料 返回顶部