JSVM - API支持的数据类型有哪些,各自的作用是什么?

阅读 599
1 个回答

JSVM - API支持的数据类型及其作用如下:

  • JSVM_Status:枚举类型,表示接口返回的状态信息,用于判断操作成功与否,如JSVM_OK表示成功,其他值表示各种错误或异常情况。
  • JSVM_ExtendedErrorInfo:结构体,在函数调用不成功时存储详细错误信息,包括错误消息、引擎保留信息、引擎错误码和错误状态码等,帮助开发者定位问题。
  • JSVM_Value:在C++代码中表示一个JavaScript值,用于在C++与JavaScript之间传递数据。
  • JSVM_Env:表示JSVM - API执行时的上下文,是Native侧函数入参并在函数中传递给其他JSVM - API接口,需注意其生命周期和线程相关限制,如禁止缓存、不同线程间共享时的处理要求等。
  • JSVM_ValueType:表示JSVM_Value的类型,涵盖了ECMAScript语言规范中的常见类型,其中JSVM_EXTERNAL表示外部数据类型。
  • JSVM_TypedarrayType:TypedArray的基本二进制标量数据类型,用于处理特定类型的数组数据。
  • JSVM_RegExpFlags:正则表达式标志位,用于设置正则表达式的各种属性,如全局匹配、忽略大小写等。
  • 编译选项相关类型:

    • JSVM_CompileOptions:配合编译接口使用,其元素包含id(指定选项类型)和content(根据id类型不同而不同,如指针、整数、布尔值等),用于传递编译相关的各种参数。
    • JSVM_CompileOptionIdJSVM_CompileOptionsid的对应类型,每个值对应特定的编译选项内容类型,如JSVM_COMPILE_MODE对应编译模式类型等。
    • JSVM_CompileMode:当idJSVM_COMPILE_MODEcontent的类型,代表不同的编译模式,如默认模式、消费代码缓存模式等。
    • JSVM_CodeCache:当idJSVM_COMPILE_CODE_CACHEcontent的类型,用于存储代码缓存相关信息,包括缓存指针和长度。
    • JSVM_ScriptOrigin:当idJSVM_COMPILE_SCRIPT_ORIGINcontent的类型,存放待编译的源码信息,如源文件的sourceMapUrl、资源名、行列偏移等。
  • 内存管理类型:

    • JSVM_HandleScope:管理JavaScript对象的生命周期,确保在其范围内创建的对象在合适时机被回收,提高代码可靠性和性能。
    • JSVM_EscapableHandleScope:特殊句柄范围,用于将范围内创建的值返回给父scope,通过相关接口提升到JavaScript对象以便外部作用域使用。
    • JSVM_Ref:指向JSVM_Value,允许用户管理JavaScript值的生命周期。
    • JSVM_TypeTag:结构体,用128位值标记JavaScript对象类型,结合OH_JSVM_Wrap使用可确保安全类型转换,比OH_JSVM_Instanceof提供更强的类型检查。
  • 回调类型:

    • JSVM_CallbackInfo:表示用户定义的Native函数暴露给JavaScript的接口,一般不在此回调中创建Handle或CallbackScope。
    • JSVM_CallbackStruct:包含用户提供的Native函数的回调函数指针和数据,通过JSVM - API暴露给JavaScript。
    • JSVM_Callback:定义用户定义的Native函数暴露给JavaScript的接口,使用时有一定限制。
    • JSVM_Finalize:函数指针,用于在对象被回收时释放Native对象,传入特定接口。
    • JSVM_PropertyHandlerConfigurationStruct:执行对象属性相关操作(如getter、setter等)时触发的回调结构体,包含各种属性操作的回调函数指针。
    • JSVM_PropertyHandlerCfg:包含属性监听回调结构的指针类型。

本文参与了 【 HarmonyOS NEXT 技术问答冲榜,等你来战!】欢迎正在阅读的你也加入。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进