6.0 KiB
Value
Napi::Value
is the C++ manifestation of a JavaScript
value.
Value is a the base class upon which other JavaScript values such as Number, Boolean, String, and Object are based.
The following classes inherit, either directly or indirectly, from
Napi::Value
:
Napi::Array
Napi::ArrayBuffer
Napi::Boolean
Napi::Buffer
Napi::Date
Napi::External
Napi::Function
Napi::Name
Napi::Number
Napi::Object
Napi::String
Napi::Symbol
Napi::TypedArray
Napi::TypedArrayOf
Methods
Empty Constructor
::Value::Value(); Napi
Creates a new empty Napi::Value
instance.
Constructor
::Value::Value(napi_env env, napi_value value); Napi
[in] env
: Thenapi_env
environment in which to construct theNapi::Value
object.[in] value
: The C++ primitive from which to instantiate theNapi::Value
.value
may be any of:bool
- Any integer type
- Any floating point type
const char*
(encoded using UTF-8, null-terminated)const char16_t*
(encoded using UTF-16-LE, null-terminated)std::string
(encoded using UTF-8)std::u16string
Napi::Value
napi_value
From
template <typename T> static Napi::Value Napi::Value::From(napi_env env, const T& value);
[in] env
: Thenapi_env
environment in which to create theNapi::Value
object.[in] value
: The N-API primitive value from which to create theNapi::Value
object.
Returns a Napi::Value
object from an N-API primitive
value.
operator napi_value
operator napi_value() const;
Returns this Value’s N-API value primitive.
Returns nullptr
if this Napi::Value
is
empty.
operator ==
bool Napi::Value::operator ==(const Napi::Value& other) const;
[in] other
: TheNapi::Value
object to be compared.
Returns a bool
indicating if this
Napi::Value
strictly equals another
Napi::Value
.
operator !=
bool Napi::Value::operator !=(const Napi::Value& other) const;
[in] other
: TheNapi::Value
object to be compared.
Returns a bool
indicating if this
Napi::Value
does not strictly equal another
Napi::Value
.
StrictEquals
bool Napi::Value::StrictEquals(const Napi::Value& other) const;
[in] other
: TheNapi::Value
object to be compared.
Returns a bool
indicating if this
Napi::Value
strictly equals another
Napi::Value
.
Env
::Env Napi::Value::Env() const; Napi
Returns the Napi::Env
environment this value is
associated with.
IsEmpty
bool Napi::Value::IsEmpty() const;
Returns a bool
indicating if this
Napi::Value
is empty (uninitialized).
An empty Napi::Value
is invalid, and most attempts to
perform an operation on an empty Value will result in an exception. Note
an empty Napi::Value
is distinct from JavaScript
null
or undefined
, which are valid values.
When C++ exceptions are disabled at compile time, a method with a
Napi::Value
return type may return an empty Value to
indicate a pending exception. So when not using C++ exceptions, callers
should check whether this Napi::Value
is empty before
attempting to use it.
Type
::Value::Type() const; napi_valuetype Napi
Returns the napi_valuetype
type of the
Napi::Value
.
IsUndefined
bool Napi::Value::IsUndefined() const;
Returns a bool
indicating if this
Napi::Value
is an undefined JavaScript value.
IsNull
bool Napi::Value::IsNull() const;
Returns a bool
indicating if this
Napi::Value
is a null JavaScript value.
IsBoolean
bool Napi::Value::IsBoolean() const;
Returns a bool
indicating if this
Napi::Value
is a JavaScript boolean.
IsNumber
bool Napi::Value::IsNumber() const;
Returns a bool
indicating if this
Napi::Value
is a JavaScript number.
IsString
bool Napi::Value::IsString() const;
Returns a bool
indicating if this
Napi::Value
is a JavaScript string.
IsSymbol
bool Napi::Value::IsSymbol() const;
Returns a bool
indicating if this
Napi::Value
is a JavaScript symbol.
IsArray
bool Napi::Value::IsArray() const;
Returns a bool
indicating if this
Napi::Value
is a JavaScript array.
IsArrayBuffer
bool Napi::Value::IsArrayBuffer() const;
Returns a bool
indicating if this
Napi::Value
is a JavaScript array buffer.
IsTypedArray
bool Napi::Value::IsTypedArray() const;
Returns a bool
indicating if this
Napi::Value
is a JavaScript typed array.
IsObject
bool Napi::Value::IsObject() const;
Returns a bool
indicating if this
Napi::Value
is JavaScript object.
IsFunction
bool Napi::Value::IsFunction() const;
Returns a bool
indicating if this
Napi::Value
is a JavaScript function.
IsBuffer
bool Napi::Value::IsBuffer() const;
Returns a bool
indicating if this
Napi::Value
is a Node buffer.
IsDate
bool Napi::Value::IsDate() const;
Returns a bool
indicating if this
Napi::Value
is a JavaScript date.
As
template <typename T> T Napi::Value::As() const;
Casts to another type of Napi::Value
, when the actual
type is known or assumed.
This conversion does not coerce the type. Calling any methods
inappropriate for the actual value type will throw
Napi::Error
.
ToBoolean
::Boolean Napi::Value::ToBoolean() const; Napi
Returns the Napi::Value
coerced to a JavaScript
boolean.
ToNumber
::Number Napi::Value::ToNumber() const; Napi
Returns the Napi::Value
coerced to a JavaScript
number.
ToString
::String Napi::Value::ToString() const; Napi
Returns the Napi::Value
coerced to a JavaScript
string.
ToObject
::Object Napi::Value::ToObject() const; Napi
Returns the Napi::Value
coerced to a JavaScript
object.