diff --git a/zh-cn/application-dev/napi/jsvm-data-types-interfaces.md b/zh-cn/application-dev/napi/jsvm-data-types-interfaces.md index a957882025321ece1d069a94514ef23032a00047..2eb1e7d0f03b443582b39406545eaebaf251e2af 100644 --- a/zh-cn/application-dev/napi/jsvm-data-types-interfaces.md +++ b/zh-cn/application-dev/napi/jsvm-data-types-interfaces.md @@ -198,8 +198,8 @@ typedef enum { 当 id 为 JSVM_COMPILE_CODE_CACHE 时,content 的类型: -- cache : 指向code cache的指针。 -- length : 代表code cache的大小。 +- cache : 指向 code cache 的指针。 +- length : 代表 code cache 的大小。 ```c typedef struct { diff --git a/zh-cn/application-dev/napi/jsvm-introduction.md b/zh-cn/application-dev/napi/jsvm-introduction.md index bf2182e664d86b735a2ae3c2764bc860be04bbc8..670a895d3f55c4108b1b2204ef2001f9b1763ab2 100644 --- a/zh-cn/application-dev/napi/jsvm-introduction.md +++ b/zh-cn/application-dev/napi/jsvm-introduction.md @@ -2,7 +2,7 @@ ## 场景介绍 -OpenHarmony JSVM-API是基于标准JS引擎提供了一套稳定的API,为开发者提供了完整的JS引擎能力,包括创建和销毁引擎、执行JS代码、JS/C++交互等关键能力。 +OpenHarmony JSVM-API是基于标准JS引擎提供的一套稳定的API,为开发者提供了较为完整的JS引擎能力,包括创建和销毁引擎,执行JS代码,JS/C++交互等关键能力。 OpenHarmony JSVM-API是C语言接口,遵循C99标准。 diff --git a/zh-cn/application-dev/napi/use-jsvm-about-array.md b/zh-cn/application-dev/napi/use-jsvm-about-array.md index ddc9208fdb6cb0537f8ff6a7603981d00234d558..571569f7113e20fea521607187c6fcc58ac774f8 100644 --- a/zh-cn/application-dev/napi/use-jsvm-about-array.md +++ b/zh-cn/application-dev/napi/use-jsvm-about-array.md @@ -2,15 +2,15 @@ ## 简介 -使用JSVM-API接口进行数组(array)相关开发时,在JSVM模块中可以调用相关接口直接操作和处理JavaScript中的数组。 +使用JSVM-API接口进行数组(array)相关开发时,在JSVM模块中可以调用相关接口直接操作和处理 JavaScript 中的数组。 ## 基本概念 -使用JSVM-API接口进行数组(array)相关开发时,涉及的基本概念主要包括数组的创建、访问、修改、遍历以及与数组相关的操作。这些概念对于理解在JSVM模块中与JavaScript数组交互非常重要。以下是一些关键概念: +使用 JSVM-API 接口进行数组(array)相关开发时,涉及的基本概念主要包括数组的创建、访问、修改、遍历以及与数组相关的操作。这些概念对于理解在 JSVM 模块中与 JavaScript 数组交互非常重要。以下是一些关键概念: -- **数组的创建**:若在JSVM模块中需要创建新的JavaScript数组时,可以使用提供的OH_JSVM_CreateArray接口创建数组,将传递给JavaScript层。 -- **数组相关操作**:在JSVM模块中通过对应的接口获取JavaScript数组的长度、检索指定索引处的元素、设置指定索引的元素值,从而实现JSVM模块与JavaScript数组的交互。 -- **TypedArray**:JavaScript中的TypedArray是一种类数组数据视图,用于描述二进制数据。它可以视为指定元素类型的数组,TypedArray没有直接构造器,但是可以通过其子类构造器构造创建。子类包括:Int8Array、Uint8Array、Uint8ClampedArray、Int16Array、Int32Array等。 +- **数组的创建**:若在 JSVM 模块中需要创建新的 JavaScript 数组时,可以使用提供的 OH_JSVM_CreateArray 接口创建数组,将传递给 JavaScript 层。 +- **数组相关操作**:在 JSVM 模块中通过对应的接口获取 JavaScript 数组的长度、检索指定索引处的元素、设置指定索引的元素值,从而实现 JSVM 模块与 JavaScript 数组的交互。 +- **TypedArray**:JavaScript 中的 TypedArray 是一种类数组数据视图,用于描述二进制数据。它可以视为指定元素类型的数组,TypedArray 没有直接构造器,但是可以通过其子类构造器构造创建。子类包括:Int8Array、Uint8Array、Uint8ClampedArray、Int16Array、Int32Array等。 - **ArrayBuffer**:ArrayBuffer 是固定长度的二进制数据缓冲区。 - **DataView**:DataView 是 JavaScript 中的一种视图,是可以从 ArrayBuffer 对象中读写多种数值类型的底层接口。 @@ -21,7 +21,7 @@ | ---------------------------- | ------------------------------------------ | |OH_JSVM_CreateArray | 创建一个新的 JavaScript 数组对象 | |OH_JSVM_CreateArrayWithLength | 创建一个指定长度的 JavaScript 数组对象 | -|OH_JSVM_CreateTypedarray | 在现有的ArrayBuffer上创建JavaScript TypedArray对象,TypedArray对象提供类似数组的视图,每个元素具有相同的二进制标量数据类型。注意(length * size_of_element) + byte_offset 不得超过传入数组的大小(以字节为单位),否则会引发RangeError异常。| +|OH_JSVM_CreateTypedarray | 在现有的 ArrayBuffer 上创建 JavaScript TypedArray 对象,TypedArray 对象在底层数据缓冲区上提供类似数组的视图,其中每个元素都具有相同的底层二进制标量数据类型。注意入参要求:(length * size_of_element) + byte_offset 不得超过传入数组的大小(以字节为单位),其中size_of_element 指数组中元素数据类型的大小,否则会引发 RangeError 异常。| |OH_JSVM_CreateDataview | 在现有的 ArrayBuffer 上创建一个 JavaScript DataView 对象,DataView 对象在底层数据缓冲区上提供类似数组的视图,该 ArrayBuffer 允许有不同大小和类型的元素。要求 byte_length + byte_offset 小于或等于传入数组的字节大小,否则会引发 RangeError 异常。| |OH_JSVM_GetArrayLength | 返回 Array 对象的长度 | |OH_JSVM_GetTypedarrayInfo | 获取 TypedArray(类型化数组)对象的信息 | @@ -42,7 +42,7 @@ JSVM-API 接口开发流程参考[使用 JSVM-API 实现 JS 与 C/C++ 语言交 创建一个新的 JavaScript 数组对象。 -cpp部分代码: +cpp 部分代码: ```cpp // hello.cpp @@ -96,7 +96,7 @@ JSVM CreateArray success 创建一个指定长度的 JavaScript 数组对象。 -cpp部分代码: +cpp 部分代码: ```cpp // hello.cpp @@ -157,7 +157,7 @@ JSVM CreateArrayWithLength success 在现有的 ArrayBuffer上 创建一个 JavaScript TypedArray 对象,TypedArray 对象在底层数据缓冲区上提供类似数组的视图,其中每个元素都具有相同的底层二进制标量数据类型。 -cpp部分代码: +cpp 部分代码: ```cpp // hello.cpp @@ -262,7 +262,7 @@ JSVM CreateTypedArray success 在现有的 ArrayBuffer 上创建一个 JavaScript DataView 对象,DataView 对象在底层数据缓冲区上提供类似数组的视图。 -cpp部分代码: +cpp 部分代码: ```cpp static int DIFF_VALUE_FOUR = 4; @@ -372,7 +372,7 @@ JSVM CreateDataView success, returnOffset: 4 返回 Array 对象的长度。 -cpp部分代码: +cpp 部分代码: ```cpp // hello.cpp @@ -433,7 +433,7 @@ JSVM length: 6 获取 TypedArray(类型化数组)对象的信息。 -cpp部分代码: +cpp 部分代码: ```cpp // hello.cpp @@ -551,7 +551,7 @@ JSVM GetTypedArrayInfo success, byteOffset: 0 获取 Dataview 对象的信息。 -cpp部分代码: +cpp 部分代码: ```cpp // hello.cpp @@ -660,7 +660,7 @@ JSVM GetDataViewInfo success, byteOffset: 0 判断一个 JavaScript 对象是否为 Array 类型对象。 -cpp部分代码: +cpp 部分代码: ```cpp // hello.cpp @@ -709,7 +709,7 @@ JSVM IsArray success, IsArray: 1 在给定对象的指定索引处设置元素。 -cpp部分代码: +cpp 部分代码: ```cpp // hello.cpp @@ -757,7 +757,7 @@ JSVM SetElement success 获取给定对象指定索引处的元素。 -cpp部分代码: +cpp 部分代码: ```cpp // hello.cpp @@ -808,7 +808,7 @@ JSVM GetElement success 若给定对象的指定索引处拥有属性,获取该元素。 -cpp部分代码: +cpp 部分代码: ```cpp // hello.cpp @@ -864,7 +864,7 @@ JSVM hasElement: 0 尝试删除给定对象的指定索引处的元素。 -cpp部分代码: +cpp 部分代码: ```cpp // hello.cpp @@ -918,7 +918,7 @@ JSVM DeleteElement: 1 判断一个 JavaScript 对象是否为 Dataview类型对象。 -cpp部分代码: +cpp 部分代码: ```cpp // hello.cpp @@ -968,7 +968,7 @@ JSVM IsDataView: 1 判断一个 JavaScript 对象是否为 Typedarray 类型对象。 -cpp部分代码: +cpp 部分代码: ```cpp // hello.cpp diff --git a/zh-cn/application-dev/napi/use-jsvm-about-date.md b/zh-cn/application-dev/napi/use-jsvm-about-date.md index 15ce9c58988ab2a86497d59edb0832136dfd0c83..d477d1af7251cb5ac8e9d4f9d8a20590ccdda7fd 100644 --- a/zh-cn/application-dev/napi/use-jsvm-about-date.md +++ b/zh-cn/application-dev/napi/use-jsvm-about-date.md @@ -22,7 +22,7 @@ JavaScript Date对象提供了一种在JavaScript中表示和操作日期和时 ## 使用示例 -JSVM-API接口开发流程参考[使用JSVM-API实现JS与C/C++语言交互开发流程](use-jsvm-process.md),本文仅展示接口对应C++相关代码。 +JSVM-API接口开发流程请参考[使用JSVM-API实现JS与C/C++语言交互开发流程](use-jsvm-process.md),本文仅展示接口对应的C++相关代码。 ### OH_JSVM_CreateDate diff --git a/zh-cn/application-dev/napi/use-jsvm-about-primitive.md b/zh-cn/application-dev/napi/use-jsvm-about-primitive.md index d6460645941455201851dfc96ee807eacaecf894..fd97986c17c0c7590534374bccf90029a3153672 100644 --- a/zh-cn/application-dev/napi/use-jsvm-about-primitive.md +++ b/zh-cn/application-dev/napi/use-jsvm-about-primitive.md @@ -32,7 +32,7 @@ JSVM-API接口开发流程参考[使用JSVM-API实现JS与C/C++语言交互开 用于将一个给定的JavaScript值强制转为JavaScript boolean值。 -cpp部分代码: +cpp 部分代码: ```cpp // hello.cpp @@ -79,7 +79,7 @@ SVM OH_JSVM_CoerceToBool success:1 用于将给定的JavaScript value强转为JavaScript number。 -cpp部分代码: +cpp 部分代码: ```cpp // hello.cpp @@ -126,7 +126,7 @@ JSVM OH_JSVM_CoerceToNumber success:1 用于将给定的JavaScript value强转为JavaScript Object类型。 -cpp部分代码: +cpp 部分代码: ```cpp // hello.cpp @@ -172,7 +172,7 @@ JSVM OH_JSVM_CoerceToObject success 用于将给定的JavaScript value强转为JavaScript string类型。 -cpp部分代码: +cpp 部分代码: ```cpp // hello.cpp @@ -218,7 +218,7 @@ JSVM OH_JSVM_CoerceToString success 获取给定布尔值的JavaScript单例对象。 -cpp部分代码: +cpp 部分代码: ```cpp // hello.cpp @@ -279,7 +279,7 @@ JSVM OH_JSVM_CoerceToNumber success:1 使用这个函数将JavaScript中的布尔值转为等价的C布尔值。 -cpp部分代码: +cpp 部分代码: ```cpp // hello.cpp @@ -332,7 +332,7 @@ JSVM OH_JSVM_GetValueBool success:0 用于获取全局JavaScript对象。该函数的主要作用是获取表示JavaScript全局对象的JSVM_Value,使得JSVM模块能够与JavaScript运行时的全局对象进行交互。 -cpp部分代码: +cpp 部分代码: ```cpp // hello.cpp @@ -378,7 +378,7 @@ JSVM OH_JSVM_GetGlobal success 用于获取JavaScript null -cpp部分代码: +cpp 部分代码: ```cpp // hello.cpp @@ -419,7 +419,7 @@ JSVM OH_JSVM_GetNull success 用于获取JavaScript undefined -cpp部分代码: +cpp 部分代码: ```cpp // hello.cpp diff --git a/zh-cn/application-dev/napi/use-jsvm-about-string.md b/zh-cn/application-dev/napi/use-jsvm-about-string.md index 2b294d87505eecc8ba4dc93fd02bb1144e2abc98..a6af827df81fe01c84b701b641d323d070c401c5 100644 --- a/zh-cn/application-dev/napi/use-jsvm-about-string.md +++ b/zh-cn/application-dev/napi/use-jsvm-about-string.md @@ -6,7 +6,7 @@ ## 基本概念 -string是编程中常用的数据类型。用于存储和操作文本数据,它可用于构建用户界面元素,如标签、按钮和文本框,处理用户输入,验证和格式化数据。不同的编码方案支持不同的字符集和语言,以下是一些主要的编码方案及其区别: +string是编程中常用的数据类型。它可以存储和操作文本数据,用于表示和处理字符序列。它还可以用于构建用户界面元素,如标签、按钮和文本框,处理用户输入,验证和格式化数据。不同的编码方案支持不同的字符集和语言,以下是一些主要的编码方案及其区别: - **ASCII**:ASCII是最早的字符编码方案之一,使用7位编码,只能表示英文字母、数字和一些基本符号。它是许多其他编码方案的基础。 - **UTF-8**:UTF-8是一种变长编码方案,可以表示全球范围的字符集。它使用8位编码,根据字符的不同范围使用不同长度的字节序列。UTF-8是互联网上广泛使用的编码方案。 diff --git a/zh-cn/application-dev/napi/use-jsvm-about-well-known-symbols.md b/zh-cn/application-dev/napi/use-jsvm-about-well-known-symbols.md index 033535559ce2d456b230c1992267af30ca9872f7..b9ef2da423fdd6d8b68cd88cd54b54bb0a176523 100644 --- a/zh-cn/application-dev/napi/use-jsvm-about-well-known-symbols.md +++ b/zh-cn/application-dev/napi/use-jsvm-about-well-known-symbols.md @@ -26,7 +26,7 @@ JSVM-API中Well-known symbols相关接口可以通过不同API直接获取对应 ## 使用示例 -JSVM-API接口开发流程参考[使用JSVM-API实现JS与C/C++语言交互开发流程](use-jsvm-process.md),本文仅展示接口对应C++相关代码。 +JSVM-API接口开发流程请参考[使用JSVM-API实现JS与C/C++语言交互开发流程](use-jsvm-process.md),本文仅展示接口对应的C++相关代码。 ### 使用接口获取Well-known symbols(以OH_JSVM_GetSymbolToStringTag为例) diff --git a/zh-cn/application-dev/napi/use-jsvm-create-snapshot.md b/zh-cn/application-dev/napi/use-jsvm-create-snapshot.md index 6f9d1bdb0327658e3133ed6e56915bfe81c58433..fe749bc65c6b85946cc2897e2028a716ec5f324e 100644 --- a/zh-cn/application-dev/napi/use-jsvm-create-snapshot.md +++ b/zh-cn/application-dev/napi/use-jsvm-create-snapshot.md @@ -338,4 +338,4 @@ Test JSVM RunVMSnapshot read file blobSize = : 300032 Test JSVM RunVMSnapshot read file blobSize = : 300176 Test JSVM RunVMSnapshot read file blobSize = : 300048 ``` -这是因为,在读取快照文件时,blobSize 是通过 file.tellg() 获取的文件大小。因此,快照文件的大小直接决定了blobSize的值,所以会输出不同的值。 +上述执行结果是因为在读取快照文件时,blobSize 的值来源于快照文件的大小(通过 file.tellg() 获取)。快照文件的大小直接决定了 blobSize 的值,所以会输出不同的值。 diff --git a/zh-cn/application-dev/napi/use-jsvm-execute_tasks.md b/zh-cn/application-dev/napi/use-jsvm-execute_tasks.md index b4ff4dffc38a0b99acc143e614c8a5edb275c472..aaec580e3325067ba17466c0c3ff07de61ae6189 100644 --- a/zh-cn/application-dev/napi/use-jsvm-execute_tasks.md +++ b/zh-cn/application-dev/napi/use-jsvm-execute_tasks.md @@ -2,7 +2,7 @@ ## 简介 -在虚拟机内部启动运行任务队列,检查是否有微任务在队列中等待,这个任务队列可以由外部事件循环执行。 +在虚拟机内部启动任务队列的运行,检查是否有微任务在队列中等待,这个任务队列可以由外部事件循环执行。 ## 基本概念 diff --git a/zh-cn/application-dev/napi/use-jsvm-life-cycle.md b/zh-cn/application-dev/napi/use-jsvm-life-cycle.md index a2583c05316c2f5459dba16de182c62390eb8d92..b389108557cf4a0bf9f21b051fa3f2139a6bfd68 100644 --- a/zh-cn/application-dev/napi/use-jsvm-life-cycle.md +++ b/zh-cn/application-dev/napi/use-jsvm-life-cycle.md @@ -3,7 +3,7 @@ ## 简介 在JSVM-API中,JSVM_Value是一个表示JavaScript值的抽象类型,它可以表示任何JavaScript值,包括基本类型(如数字、字符串、布尔值)和对象类型(如数组、函数、对象等)。 -JSVM_Value的生命周期与JavaScript值的生命周相关。JavaScript值被垃圾回收时,JSVM_Value不再有效。不要在JavaScript值不再存在时使用JSVM_Value。 +JSVM_Value的生命周期与JavaScript值的生命周期相关。JavaScript值被垃圾回收后,JSVM_Value将失效。请勿在JavaScript值不存在时使用JSVM_Value。 框架层的scope通常用于管理JSVM_Value的生命周期。在JSVM-API中,可以使用OH_JSVM_OpenHandleScope和OH_JSVM_CloseHandleScope函数来创建和销毁scope。通过在scope内创建JSVM_Value,可以确保在scope结束时自动释放JSVM_Value,避免内存泄漏。 @@ -22,7 +22,7 @@ JSVM-API提供了一组功能,使开发人员能够在JSVM-API模块中创建 - **可逃逸的作用域**:允许在创建的作用域中声明的对象返回到父作用域,通过OH_JSVM_OpenEscapableHandleScope和OH_JSVM_CloseEscapableHandleScope进行管理。 - **垃圾回收回调**:允许注册回调函数,以便在JavaScript对象被垃圾回收时执行特定的清理操作。 -这些基本概念使开发人员安全且有效地操作JavaScript对象,正确管理对象的生命周期。 +这些基本概念使开发人员能够在JSVM-API模块中安全且有效地操作JavaScript对象,并确保正确管理对象的生命周期。 ## 接口说明 @@ -46,7 +46,7 @@ JSVM-API接口开发流程参考[使用JSVM-API实现JS与C/C++语言交互开 ### OH_JSVM_OpenHandleScope、OH_JSVM_CloseHandleScope -通过接口OH_JSVM_OpenHandleScope创建一个上下文环境。需要使用OH_JSVM_CloseHandleScope进行关闭。这用于管理JavaScript对象的生命周期,确保在JSVM-API模块中处理JavaScript对象时能正确管理其句柄,避免垃圾回收相关的问题。 +通过接口OH_JSVM_OpenHandleScope创建一个上下文环境,使用时需调用OH_JSVM_CloseHandleScope进行关闭。该机制用于管理JavaScript对象的生命周期,确保在JSVM-API模块中处理JavaScript对象时能正确管理其句柄,避免垃圾回收相关的问题。 cpp部分代码: