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公司有限公司的商标。所有其他商标均为其各自所有者的财产。