使用JSVM-API判断给定的两个JS value是否严格相等
===============================

#### 简介

JSVM-API 中的函数用于判断两个 JavaScript 值是否严格相等，类似于 JavaScript 中的 === 操作符。该函数避免类型转换和松散相等性比较，确保值和类型均相等。

#### 基本概念

比较两个JavaScript值是否严格相等。严格相等比较不会进行类型转换，它要求两个值的类型和值完全相同才会返回true。

#### 接口说明

| 接口 | 功能说明 |
| :-- | :-- |
| OH\_JSVM\_StrictEquals | 判断两个JSVM\_Value对象是否相等 |

#### 使用示例

JSVM-API接口开发流程参考[使用JSVM-API实现JS与C/C++语言交互开发流程](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/use-jsvm-process)，本文仅对接口对应C++相关代码进行展示。

#### \[h2\]OH\_JSVM\_StrictEquals

判断给定的两个JS value是否严格相等。

cpp部分代码：

// hello.cpp
#include "napi/native\_api.h"
#include "ark\_runtime/jsvm.h"
#include <hilog/log.h>
// OH\_JSVM\_StrictEquals的样例方法
static JSVM\_Value IsStrictEquals(JSVM\_Env env, JSVM\_CallbackInfo info)
{
    // 接受两个入参
    size\_t argc = 2;
    JSVM\_Value args\[2\] = {nullptr};
    OH\_JSVM\_GetCbInfo(env, info, &argc, args, nullptr, nullptr);
    // 调用OH\_JSVM\_StrictEquals接口判断给定的两个JavaScript value是否严格相等
    bool result = false;
    JSVM\_Status status = OH\_JSVM\_StrictEquals(env, args\[0\], args\[1\], &result);
    if (status != JSVM\_OK) {
        OH\_LOG\_ERROR(LOG\_APP, "JSVM OH\_JSVM\_StrictEquals: failed");
    } else {
        OH\_LOG\_INFO(LOG\_APP, "JSVM OH\_JSVM\_StrictEquals: success: %{public}d", result);
    }
    JSVM\_Value isStrictEqual = nullptr;
    OH\_JSVM\_GetBoolean(env, result, &isStrictEqual);
    return isStrictEqual;
}
// IsStrictEquals注册回调
static JSVM\_CallbackStruct param\[\] = {
    {.data = nullptr, .callback = IsStrictEquals},
};
static JSVM\_CallbackStruct \*method = param;
// IsStrictEquals方法别名，供JS调用
static JSVM\_PropertyDescriptor descriptor\[\] = {
    {"isStrictEquals", nullptr, method++, nullptr, nullptr, nullptr, JSVM\_DEFAULT},
};
// 样例测试js
const char\* srcCallNative = R"JS(data = '123';value = '123';isStrictEquals(data,value);)JS";

预期的输出结果：

JSVM OH\_JSVM\_StrictEquals: success: 1