QJSPrimitiveValue 类
QJSPrimitiveValue 类在 JavaScript 语义上操作原始类型。更多...
头文件 | #include <QJSPrimitiveValue> |
CMake | find_package(Qt6 REQUIRED COMPONENTS Qml) target_link_libraries(mytarget PRIVATE Qt6::Qml) |
qmake | QT += qml |
自 | Qt 6.1 |
公共类型
枚举 | Type { Undefined, Null, Boolean, Integer, Double, String } |
公共函数
QJSPrimitiveValue() | |
QJSPrimitiveValue(QJSPrimitiveUndefined undefined) | |
QJSPrimitiveValue(QJSPrimitiveNull null) | |
QJSPrimitiveValue(bool value) | |
QJSPrimitiveValue(int value) | |
QJSPrimitiveValue(double value) | |
QJSPrimitiveValue(QString value) | |
QJSPrimitiveValue(const QVariant &value) | |
(自 6.4) | QJSPrimitiveValue(QMetaType type, const void *value) |
(自 6.6) const void * | constData() const |
(自 6.6) void * | 数据() |
(自 6.6) const void * | data() const |
布尔值 | equals(const QJSPrimitiveValue &other) const |
(自 6.6) QMetaType | metaType() const |
布尔值 | strictlyEquals(const QJSPrimitiveValue &other) const |
(自 6.6) QJSPrimitiveValue | to() const |
布尔值 | toBoolean() const |
双精度浮点数 | toDouble() const |
整型 | toInteger() const |
QString | toString() const |
QJSPrimitiveValue::Type | type() const |
相关非成员
(自 6.1) bool | operator!=(const QJSPrimitiveValue &lhs, const QJSPrimitiveValue &rhs) |
(自 6.1) QJSPrimitiveValue | operator*(const QJSPrimitiveValue &lhs, const QJSPrimitiveValue &rhs) |
(自 6.1) QJSPrimitiveValue | operator+(const QJSPrimitiveValue &lhs, const QJSPrimitiveValue &rhs) |
(自 6.1) QJSPrimitiveValue | operator-(const QJSPrimitiveValue &lhs, const QJSPrimitiveValue &rhs) |
(自 6.1) QJSPrimitiveValue | operator/(const QJSPrimitiveValue &lhs, const QJSPrimitiveValue &rhs) |
(自 6.1) bool | operator<(const QJSPrimitiveValue &lhs, const QJSPrimitiveValue &rhs) |
(自 6.1) bool | operator<=(const QJSPrimitiveValue &lhs, const QJSPrimitiveValue &rhs) |
(自 6.1) bool | operator==(const QJSPrimitiveValue &lhs, const QJSPrimitiveValue &rhs) |
(自 6.1) bool | operator>(const QJSPrimitiveValue &lhs, const QJSPrimitiveValue &rhs) |
(自 6.1) bool | operator>=(const QJSPrimitiveValue &lhs, const QJSPrimitiveValue &rhs) |
详细描述
QJSPrimitiveValue支持大部分由ECMA-262标准定义的基本类型,特别是Undefined、Boolean、Number和String。此外,你可以在QJSPrimitiveValue中存储JavaScript的null,以及作为Number的特殊情况,存储整数值。
所有这些值都立即存储,不与JavaScript堆进行交互。因此,你可以将QJSPrimitiveValues在不同的JavaScript引擎之间传递。与QJSManagedValue不同,从创建它的不同线程中销毁QJSPrimitiveValue也是没有危险的。另一方面,QJSPrimitiveValue不持有任何JavaScript引擎的引用。
QJSPrimitiveValue在JavaScript语义上实现了针对支持类型上的JavaScript算术和比较运算符。类型被强制转换的方式与JavaScript引擎在JavaScript表达式中编写运算符时的转换方式相同。
JavaScript Symbol类型不被支持,因为它在算术和比较运算符方面非常有限,QJSPrimitiveValue的主要目的是这样的。特别是,当你尝试将其强制转换为数字或字符串时,它会导致异常,而我们无法在没有JavaScript引擎的情况下抛出异常。
成员类型文档
enum QJSPrimitiveValue::Type
这个枚举指定了一个QJSPrimitiveValue可能包含的类型。
常量 | 值 | 描述 |
---|---|---|
QJSPrimitiveValue::Undefined | 0 | JavaScript的Undefined值。 |
QJSPrimitiveValue::Null | 1 | JavaScript的null值。这实际上不是JavaScript的一个独立类型,而是Object类型的一个特殊值。由于它非常普遍并且可以在不使用JavaScript引擎的情况下存储,因此仍然得到支持。 |
QJSPrimitiveValue::Boolean | 2 | 一个JavaScript布尔值。 |
QJSPrimitiveValue::Integer | 3 | 一个整数。这是JavaScript Number类型的特殊情况。JavaScript没有实际的整数字型,但ECMA-262标准包含有关如何转换Number的规则,以便为仅在整型上才有意义的某些运算符做准备,特别是位 shifting运算符。《QJSPrimitiveValue》的Integer类型表示这种转换的结果。 |
QJSPrimitiveValue::Double | 4 | 一个JavaScript Number值。 |
QJSPrimitiveValue::String | 5 | 一个JavaScript字符串值。 |
成员函数文档
[constexpr, since 6.6]
const void *QJSPrimitiveValue::constData() const
[constexpr, since 6.6]
const void *QJSPrimitiveValue::data() const
返回包含值的指针,作为无法写入的通用void*。
此函数是在Qt 6.6中引入的。
[constexpr noexcept]
QJSPrimitiveValue::QJSPrimitiveValue()
创建一个类型为Undefined的QJSPrimitiveValue。
[constexpr noexcept]
QJSPrimitiveValue::QJSPrimitiveValue(QJSPrimitiveUndefined undefined)
创建一个具有值undefined和类型Undefined的QJSPrimitiveValue。
[constexpr noexcept]
QJSPrimitiveValue::QJSPrimitiveValue(QJSPrimitiveNull null)
创建一个具有值null和类型Null的QJSPrimitiveValue。
[constexpr noexcept]
QJSPrimitiveValue::QJSPrimitiveValue(bool value)
创建一个具有值value和类型布尔值的QJSPrimitiveValue。
[constexpr noexcept]
QJSPrimitiveValue::QJSPrimitiveValue(int value)
创建一个具有值value和类型整数的QJSPrimitiveValue。
[constexpr noexcept]
QJSPrimitiveValue::QJSPrimitiveValue(double value)
创建一个具有值value和类型双精度浮点数的QJSPrimitiveValue。
[noexcept]
QJSPrimitiveValue::QJSPrimitiveValue(QString value)
创建一个具有值value和类型字符串的QJSPrimitiveValue。
[explicit noexcept]
QJSPrimitiveValue::QJSPrimitiveValue(const QVariant &value)
从value的内容创建一个QJSPrimitiveValue,如果这些内容可以存储在QJSPrimtiveValue中。否则,这将导致返回一个类型为Undefined的QJSPrimitiveValue。
[noexcept default, since 6.4]
QJSPrimitiveValue::QJSPrimitiveValue(QMetaType type, const void *value)
创建一个类型为type的QJSPrimitiveValue,如果type可以存储在QJSPrimtiveValue中,则使用值value进行初始化。value必须非nullptr。如果type无法存储,则返回一个类型为Undefined的QJSPrimitiveValue。
注意,您必须传递要存储的变量的地址。
通常,您不需要使用此构造函数,而是使用接受QVariant的构造函数。
此函数是在Qt 6.4中引入的。
[constexpr, since 6.6]
void *QJSPrimitiveValue::data()
返回包含数据指针对应的通用void*,可以写入。
此函数是在Qt 6.6中引入的。
[constexpr]
bool QJSPrimitiveValue::equals(const QJSPrimitiveValue &other) const
对此QJSPrimitiveValue和other执行JavaScript '==' 操作,并返回结果。
[constexpr, since 6.6]
QMetaType QJSPrimitiveValue::metaType() const
返回存储在QJSPrimitiveValue中的值对应的QMetaType。
此函数是在Qt 6.6中引入的。
[constexpr]
bool QJSPrimitiveValue::strictlyEquals(const QJSPrimitiveValue &other) const
在此QJSPrimitiveValue和other上执行JavaScript '===' 操作,并返回结果。
[since 6.6]
模板 <QJSPrimitiveValue::Type type> QJSPrimitiveValue QJSPrimitiveValue::to() const
将值强制转换为指定的类型,并返回新的QJSPrimitiveValue。
此函数是在Qt 6.6中引入的。
另请参阅toBoolean(),toInteger(),toDouble() 和 toString()。
[constexpr]
bool QJSPrimitiveValue::toBoolean() const
按照JavaScript规则将值强制转换为布尔值。
[constexpr]
double QJSPrimitiveValue::toDouble() const
按照JavaScript规则将值强制转换为JavaScript Number。
[constexpr]
int QJSPrimitiveValue::toInteger() const
按照JavaScript规则将值强制转换为32位整数。
QString QJSPrimitiveValue::toString() const
按照JavaScript规则将值强制转换为JavaScript String。
[constexpr]
QJSPrimitiveValue::Type QJSPrimitiveValue::type() const
返回QJSPrimitiveValue的类型。
相关非成员
[constexpr, since 6.1]
bool operator!=(const QJSPrimitiveValue &lhs, const QJSPrimitiveValue &rhs)
在lhs和rhs上执行JavaScript '!==' 操作,并返回结果。
此函数在Qt 6.1中引入。
[since 6.1]
QJSPrimitiveValue operator*(const QJSPrimitiveValue &lhs, const QJSPrimitiveValue &rhs)
在lhs和rhs上执行JavaScript '*' 操作,并返回结果。
此函数在Qt 6.1中引入。
[since 6.1]
QJSPrimitiveValue operator+(const QJSPrimitiveValue &lhs, const QJSPrimitiveValue &rhs)
在lhs和rhs上执行JavaScript '+' 操作,并返回结果。
此函数在Qt 6.1中引入。
[自6.1版本起]
QJSPrimitiveValue operator-(const QJSPrimitiveValue &lhs, const QJSPrimitiveValue &rhs)
对lhs和rhs执行JavaScript '-' 操作,并返回结果。
此函数在Qt 6.1中引入。
[自6.1版本起]
QJSPrimitiveValue operator/(const QJSPrimitiveValue &lhs, const QJSPrimitiveValue &rhs)
对lhs和rhs执行JavaScript '/' 操作,并返回结果。
此函数在Qt 6.1中引入。
[constexpr, 自6.1版本起]
bool operator<(const QJSPrimitiveValue &lhs, const QJSPrimitiveValue &rhs)
对lhs和rhs执行JavaScript '<' 操作,并返回结果。
此函数在Qt 6.1中引入。
[constexpr, 自6.1版本起]
bool operator<=(const QJSPrimitiveValue &lhs, const QJSPrimitiveValue &rhs)
对lhs和rhs执行JavaScript '<=' 操作,并返回结果。
此函数在Qt 6.1中引入。
[constexpr, 自6.1版本起]
bool operator==(const QJSPrimitiveValue &lhs, const QJSPrimitiveValue &rhs)
对lhs和rhs执行JavaScript '===' 操作,并返回结果。
此函数在Qt 6.1中引入。
[constexpr, 自6.1版本起]
bool operator>(const QJSPrimitiveValue &lhs, const QJSPrimitiveValue &rhs)
对lhs和rhs执行JavaScript '>' 操作,并返回结果。
此函数在Qt 6.1中引入。
[constexpr, 自6.1版本起]
bool operator>=(const QJSPrimitiveValue &lhs, const QJSPrimitiveValue &rhs)
对lhs和rhs执行JavaScript '>=' 操作,并返回结果。
此函数在Qt 6.1中引入。
© 2024 Qt公司有限公司。本文档中的文档贡献属于其各自的所有者。所提供的文档根据自由软件基金会的GNU自由文档许可证第1.3版的条款许可。Qt及其相关标志是芬兰以及/或其他国家/地区的Qt公司有限公司的商标。所有其他商标均为其各自所有者的财产。