QJSValue Class
QJSValue 클래스는 Qt/JavaScript 데이터 타입을 위한 컨테이너 역할을 합니다. 더 보기...
헤더: | #include <QJSValue> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Qml) target_link_libraries(mytarget PRIVATE Qt6::Qml) |
qmake: | QT += qml |
공용 타입
enum | ErrorType { GenericError, RangeError, ReferenceError, SyntaxError, TypeError, URIError } |
enum | ObjectConversionBehavior { ConvertJSObjects, RetainJSObjects } |
enum | SpecialValue { UndefinedValue, NullValue } |
공용 함수
QJSValue(QJSValue::SpecialValue value = UndefinedValue) | |
QJSValue(bool value) | |
QJSValue(const QLatin1String &value) | |
QJSValue(const QString &value) | |
QJSValue(const char *value) | |
QJSValue(double value) | |
QJSValue(int value) | |
QJSValue(uint value) | |
QJSValue(const QJSValue &other) | |
QJSValue(QJSValue &&other) | |
~QJSValue() | |
QJSValue | call(const QJSValueList &args = QJSValueList()) const |
QJSValue | callAsConstructor(const QJSValueList &args = QJSValueList()) const |
QJSValue | callWithInstance(const QJSValue &instance, const QJSValueList &args = QJSValueList()) const |
bool | deleteProperty(const QString &name) |
bool | equals(const QJSValue &other) const |
QJSValue::ErrorType | errorType() const |
bool | hasOwnProperty(const QString &name) const |
bool | hasProperty(const QString &name) const |
bool | isArray() const |
bool | isBool() const |
bool | isCallable() const |
bool | isDate() const |
bool | isError() const |
bool | isNull() const |
bool | isNumber() const |
bool | isObject() const |
bool | isQMetaObject() const |
bool | isQObject() const |
bool | isRegExp() const |
bool | isString() const |
bool | isUndefined() const |
bool | isUrl() const |
(until 6.9) bool | isVariant() const |
QJSValue | property(const QString &name) const |
QJSValue | property(quint32 arrayIndex) const |
QJSValue | prototype() const |
void | setProperty(const QString &name, const QJSValue &value) |
void | setProperty(quint32 arrayIndex, const QJSValue &value) |
void | setPrototype(const QJSValue &prototype) |
bool | strictlyEquals(const QJSValue &other) const |
bool | toBool() const |
QDateTime | toDateTime() const |
qint32 | toInt() const |
double | toNumber() const |
QJSPrimitiveValue | toPrimitive() const |
const QMetaObject * | toQMetaObject() const |
QObject * | toQObject() const |
QString | toString() const |
quint32 | toUInt() const |
QVariant | toVariant(QJSValue::ObjectConversionBehavior behavior) const |
QVariant | toVariant() const |
QJSValue & | operator=(QJSValue &&other) |
QJSValue & | operator=(const QJSValue &other) |
관련 비회원
상세 설명
QJSValue는 ECMA-262 표준에 정의된 타입을 지원합니다: 기본 유형인 Undefined, Null, Boolean, Number, String과 객체 및 배열 유형이 그것입니다. 또한 QVariant 및 QObject 과 같은 Qt/C++ 유형에 대한 기본 지원도 제공됩니다.
객체 기반 유형(Date 및 RegExp 포함)의 경우 QJSEngine 의 newT() 함수(예: QJSEngine::newObject())를 사용하여 원하는 유형의 QJSValue를 만듭니다. 기본 유형의 경우 QJSValue 생성자 오버로드 중 하나를 사용합니다. 다른 유형(예: QPoint 과 같은 등록된 가젯 유형)의 경우 QJSEngine::toScriptValue 을 사용할 수 있습니다.
isT()(예: isBool(), isUndefined())라는 이름의 메서드는 값이 특정 유형인지 테스트하는 데 사용할 수 있습니다. toT()(예: toBool(), toString())라는 메서드는 QJSValue를 다른 유형으로 변환하는 데 사용할 수 있습니다. 일반 qjsvalue_cast() 함수를 사용할 수도 있습니다.
객체 값에는 0개 이상의 프로퍼티가 있으며 그 자체가 QJSValue입니다. setProperty ()를 사용하여 객체의 속성을 설정하고 property()를 호출하여 속성 값을 검색합니다.
QJSEngine myEngine; QJSValue myObject = myEngine.newObject(); QJSValue myOtherObject = myEngine.newObject(); myObject.setProperty("myChild", myOtherObject); myObject.setProperty("name", "John Doe");
스크립트 개체의 속성을 반복하려면 QJSValueIterator 클래스를 사용하세요.
객체 값에는 prototype() 및 setPrototype()로 액세스할 수 있는 내부 prototype
속성이 있습니다.
함수 객체( isCallable())가 참을 반환하는 객체)는 call()를 호출하여 호출할 수 있습니다. 생성자 함수는 callAsConstructor()를 호출하여 새 객체를 생성하는 데 사용할 수 있습니다.
equals() 또는 strictlyEquals()를 사용하여 QJSValue를 다른 것과 비교합니다.
isObject()가 참인 QJSValue는 실제 객체에 대한 참조만 전달하며, QJSValue를 복사하면 객체 자체는 복사되지 않고 객체 참조만 복사된다는 점에 유의하세요. 객체를 복제하려면(즉, 객체의 속성을 다른 객체에 복사하려면) 스크립트 코드에서 for-in
문을 사용하거나 C++에서 QJSValueIterator 문을 사용하여 복제할 수 있습니다.
배열로 작업하기
QJSValue를 사용하여 배열을 만들려면 QJSEngine::newArray()를 사용합니다:
// Assumes that this class was declared in QML. QJSValue jsArray = engine->newArray(3);
배열의 개별 요소를 설정하려면 setProperty(quint32 arrayIndex, const QJSValue &value) 오버로드를 사용합니다. 예를 들어 위의 배열을 정수로 채우려면 다음과 같이 하세요:
for (int i = 0; i < 3; ++i) { jsArray.setProperty(i, QRandomGenerator::global().generate()); }
배열의 길이를 확인하려면 "length"
프로퍼티에 액세스합니다. 배열 요소에 액세스하려면 property(quint32 arrayIndex) 오버로드를 사용합니다. 다음 코드는 위에서 만든 배열을 다시 목록으로 읽어들입니다:
QVector<int> integers; const int length = jsArray.property("length").toInt(); for (int i = 0; i < length; ++i) { integers.append(jsArray.property(i).toInt()); }
JSON으로 변환하기
QJSValue를 JSON 유형으로 변환할 수 있습니다. 예를 들어 배열로 변환하려면 QJSEngine::fromScriptValue()를 사용합니다:
const QJsonValue jsonValue = engine.fromScriptValue<QJsonValue>(jsValue); const QJsonArray jsonArray = jsonValue.toArray();
QJSEngine 및 QJSValueIterator 을참조하세요 .
멤버 유형 문서
enum QJSValue::ErrorType
이 열거형은 JavaScript 언어별 오류 객체 유형에 사용합니다.
C++의 언어 기능을 에뮬레이트할 때 특수한 예외 유형을 사용해야 할 때 유용할 수 있습니다. 또한 일반적인 JavaScript 예외를 던지는 대신 특정 일반적인 조건을 보다 명확하게 전달하는 데 도움이 될 수 있습니다. 예를 들어 네트워킹 및 리소스 로케이터를 처리하는 코드에서는 URIError 유형을 사용하여 잘못된 로케이터와 관련된 오류를 전파하는 것이 유용할 수 있습니다.
상수 | 값 | 설명 |
---|---|---|
QJSValue::GenericError | 1 | 특정 하위 유형이 아닌 일반 오류 객체입니다. |
QJSValue::RangeError | 3 | 값이 예상된 집합 또는 범위와 일치하지 않습니다. |
QJSValue::ReferenceError | 4 | 존재하지 않는 변수를 참조했습니다. |
QJSValue::SyntaxError | 5 | 언어 구문과 일치하지 않는 잘못된 토큰 또는 토큰 시퀀스가 발견되었습니다. |
QJSValue::TypeError | 6 | 피연산자 또는 인수가 예상 유형과 호환되지 않습니다. |
QJSValue::URIError | 7 | URI 처리 함수가 잘못 사용되었거나 제공된 URI가 잘못되었습니다. |
enum QJSValue::ObjectConversionBehavior
이 열거형은 QVariant 로 변환할 때 동등한 네이티브 Qt 유형이 없는 JavaScript 객체와 심볼을 어떻게 처리해야 하는지 지정하는 데 사용됩니다.
Constant | 값 | 설명 |
---|---|---|
QJSValue::ConvertJSObjects | 0 | 손실 가능성이 있는 최선의 변환이 시도됩니다. 심볼은 QString 로 변환됩니다. |
QJSValue::RetainJSObjects | 1 | 값은 QVariant 으로 래핑된 QJSValue 로 유지됩니다. |
enum QJSValue::SpecialValue
이 열거형은 단일값 유형을 지정하는 데 사용됩니다.
Constant | 값 | 설명 |
---|---|---|
QJSValue::UndefinedValue | 1 | 정의되지 않은 값입니다. |
QJSValue::NullValue | 0 | 널 값입니다. |
멤버 함수 문서
QJSValue::QJSValue(QJSValue::SpecialValue value = UndefinedValue)
특수 value 를 사용하여 새 QJSValue를 구축합니다.
QJSValue::QJSValue(bool value)
부울 value 을 사용하여 새 QJSValue를 구축합니다.
QJSValue::QJSValue(const QLatin1String &value)
문자열 value 을 사용하여 새 QJSValue를 생성합니다.
QJSValue::QJSValue(const QString &value)
문자열 value 을 사용하여 새 QJSValue를 생성합니다.
QJSValue::QJSValue(const char *value)
문자열 value 을 사용하여 새 QJSValue를 생성합니다.
QJSValue::QJSValue(double value)
숫자를 사용하여 새 QJSValue를 구축합니다 value.
QJSValue::QJSValue(int value)
숫자를 사용하여 새 QJSValue를 구축합니다 value.
QJSValue::QJSValue(uint value)
숫자를 사용하여 새 QJSValue를 구축합니다 value.
QJSValue::QJSValue(const QJSValue &other)
other 의 복사본인 새 QJSValue를 생성합니다.
other 가 객체인 경우(즉, isObject()가 참을 반환하는 경우), 기본 객체에 대한 참조만 새 스크립트 값에 복사됩니다(즉, 객체 자체는 복사되지 않음).
QJSValue::QJSValue(QJSValue &&other)
생성자를 이동합니다. other 에서 이 QJSValue 객체로 이동합니다.
[noexcept]
QJSValue::~QJSValue()
이것을 파괴합니다 QJSValue.
QJSValue QJSValue::call(const QJSValueList &args = QJSValueList()) const
QJSValue 을 함수로 호출하고, args 을 함수에 인수로 전달하고, globalObject()를 "this"-객체로 사용합니다. 함수에서 반환된 값을 반환합니다.
QJSValue 을 호출할 수 없는 경우 call()은 아무 작업도 수행하지 않고 정의되지 않은 QJSValue 을 반환합니다.
call()을 호출하면 스크립트 엔진에서 예외가 발생할 수 있으며, 이 경우 call()은 던져진 값(일반적으로 Error
객체)을 반환합니다. 반환 값에서 isError()를 호출하여 예외가 발생했는지 확인할 수 있습니다.
isCallable(), callWithInstance() 및 callAsConstructor()도 참조하세요 .
QJSValue QJSValue::callAsConstructor(const QJSValueList &args = QJSValueList()) const
새 Object
을 생성하고 이 QJSValue 을 생성자로 호출하여 생성된 객체를 'this' 객체로 사용하고 args 을 인수로 전달합니다. 생성자 호출의 반환 값이 객체이면 해당 객체가 반환되고, 그렇지 않으면 기본 생성된 객체가 반환됩니다.
QJSValue 이 함수가 아닌 경우 callAsConstructor()는 아무 작업도 수행하지 않고 정의되지 않은 QJSValue 을 반환합니다.
이 함수를 호출하면 스크립트 엔진에서 예외가 발생할 수 있으며, 이 경우 던져진 값(일반적으로 Error
객체)이 반환됩니다. 반환 값에서 isError()를 호출하여 예외가 발생했는지 확인할 수 있습니다.
call() 및 QJSEngine::newObject()도 참조하세요 .
QJSValue QJSValue::callWithInstance(const QJSValue &instance, const QJSValueList &args = QJSValueList()) const
QJSValue 을 함수로 호출하고, 함수 호출에서 instance 을 'this' 객체로 사용하고, args 을 함수에 인수로 전달합니다. 함수에서 반환된 값을 반환합니다.
QJSValue 이 함수가 아닌 경우 call()은 아무 작업도 수행하지 않고 정의되지 않은 QJSValue 을 반환합니다.
instance 이 객체가 아닌 경우 전역 객체( QJSEngine::globalObject() 참조)가 'this' 객체로 사용됩니다.
call()를 호출하면 스크립트 엔진에서 예외가 발생할 수 있으며, 이 경우 call()는 던져진 값(일반적으로 Error
객체)을 반환합니다. 반환 값에서 isError()를 호출하여 예외가 발생했는지 확인할 수 있습니다.
call()도 참조하세요 .
bool QJSValue::deleteProperty(const QString &name)
주어진 name 의 이 객체 프로퍼티를 삭제하려고 시도합니다. 프로퍼티가 삭제되면 참을 반환하고, 그렇지 않으면 거짓을 반환합니다.
이 함수의 동작은 자바스크립트 삭제 연산자와 일치합니다. 특히
- 구성할 수 없는 속성은 삭제할 수 없습니다.
- 이 함수는 이 객체에 지정된 name 속성이 없는 경우에도 참을 반환합니다(즉, 존재하지 않는 속성은 "삭제할 수 없음").
- 이 객체에 지정된 name 의 자체 프로퍼티가 없지만 prototype() 체인의 객체에 있는 경우, 프로토타입 객체의 프로퍼티는 삭제되지 않으며 이 함수는 참을 반환합니다.
setProperty() 및 hasOwnProperty()도 참조하세요 .
bool QJSValue::equals(const QJSValue &other) const
QJSValue 이 other 과 같으면 참을 반환하고, 그렇지 않으면 거짓을 반환합니다. 이 비교는 ECMA-262 섹션 11.9.3, "추상적 동일성 비교 알고리즘"에 설명된 동작을 따릅니다.
이 함수는 QJSValue 의 유형이 other 값의 유형과 다른 경우, 즉 비교가 엄격하지 않은 경우에도 참을 반환할 수 있습니다. 예를 들어 숫자 9를 문자열 "9"와 비교하면 참을 반환하고, 정의되지 않은 값을 null 값과 비교하면 참을 반환하며, 기본값이 6인 Number
객체를 기본값이 "6"인 String
객체와 비교하면 참을 반환하고, 숫자 1을 부울 값 true
과 비교하면 참을 반환합니다. 이러한 암시적 값 변환 없이 비교를 수행하려면 strictlyEquals()를 사용합니다.
QJSValue 또는 other 값이 객체인 경우 이 함수를 호출하면 엔진이 객체를 원시 값으로 변환하기 위해 객체의 valueOf() 함수(및 toString())를 호출하므로 스크립트 엔진에 부작용이 발생할 수 있습니다(잡히지 않은 스크립트 예외가 발생할 수 있음).
strictlyEquals()도 참조하세요 .
QJSValue::ErrorType QJSValue::errorType() const
QJSValue 이 오류 객체인 경우 해당 오류 유형을 반환합니다. 그렇지 않으면 다음을 반환합니다. NoError."
isError() 및 QJSEngine - Script Exceptions도 참조하세요 .
bool QJSValue::hasOwnProperty(const QString &name) const
이 객체에 지정된 name 의 자체(프로토타입에서 상속되지 않은) 프로퍼티가 있으면 참을 반환하고, 그렇지 않으면 거짓을 반환합니다.
property() 및 hasProperty()도 참조하세요 .
bool QJSValue::hasProperty(const QString &name) const
이 객체에 지정된 name 의 속성이 있으면 참을 반환하고, 그렇지 않으면 거짓을 반환합니다.
property() 및 hasOwnProperty()도 참조하세요 .
bool QJSValue::isArray() const
QJSValue 이 Array 클래스의 객체이면 참을 반환하고, 그렇지 않으면 거짓을 반환합니다.
QJSEngine::newArray()도 참조하세요 .
bool QJSValue::isBool() const
QJSValue 이 기본 유형 부울이면 참을 반환하고, 그렇지 않으면 거짓을 반환합니다.
toBool()도 참조하세요 .
bool QJSValue::isCallable() const
QJSValue 이 함수인 경우 참을 반환하고, 그렇지 않으면 거짓을 반환합니다.
call()도 참조하세요 .
bool QJSValue::isDate() const
QJSValue 이 Date 클래스의 객체이면 참을 반환하고, 그렇지 않으면 거짓을 반환합니다.
bool QJSValue::isError() const
QJSValue 이 Error 클래스의 객체이면 참을 반환하고, 그렇지 않으면 거짓을 반환합니다.
errorType() 및 QJSEngine - Script Exceptions도 참조하세요 .
bool QJSValue::isNull() const
QJSValue 이 기본 유형이 Null이면 참을 반환하고, 그렇지 않으면 거짓을 반환합니다.
bool QJSValue::isNumber() const
QJSValue 이 기본 유형 Number인 경우 참을 반환하고, 그렇지 않으면 거짓을 반환합니다.
toNumber()도 참조하세요 .
bool QJSValue::isObject() const
QJSValue 이 객체 유형인 경우 참을 반환하고, 그렇지 않으면 거짓을 반환합니다.
함수 값, 변형 값 및 QObject 값은 객체이므로 이 함수는 이러한 값에 대해 참을 반환합니다.
QJSEngine::newObject()도 참조하세요 .
bool QJSValue::isQMetaObject() const
QJSValue 이 QMetaObject 인 경우 참을 반환하고, 그렇지 않으면 거짓을 반환합니다.
toQMetaObject() 및 QJSEngine::newQMetaObject()도 참조하세요 .
bool QJSValue::isQObject() const
QJSValue 이 QObject 인 경우 참을 반환하고, 그렇지 않으면 거짓을 반환합니다.
참고: 이 함수는 QJSValue 이 감싸고 있는 QObject 이 삭제된 경우에도 참을 반환합니다.
toQObject() 및 QJSEngine::newQObject()도 참조하세요 .
bool QJSValue::isRegExp() const
QJSValue 이 RegExp 클래스의 객체이면 참을 반환하고, 그렇지 않으면 거짓을 반환합니다.
bool QJSValue::isString() const
QJSValue 이 기본 유형 문자열이면 참을 반환하고, 그렇지 않으면 거짓을 반환합니다.
toString()도 참조하세요 .
bool QJSValue::isUndefined() const
QJSValue 원시 유형이 Undefined이거나 관리되는 값이 지워진 경우(엔진을 삭제하여) true를 반환합니다. 그렇지 않으면 false를 반환합니다.
bool QJSValue::isUrl() const
QJSValue 이 URL JavaScript 클래스의 객체이면 참을 반환하고, 그렇지 않으면 거짓을 반환합니다.
[until 6.9]
bool QJSValue::isVariant() const
이 함수는 버전 6.9에서 더 이상 사용되지 않을 예정입니다.
QJSValue 이 변형 값인 경우 참을 반환하고, 그렇지 않으면 거짓을 반환합니다.
경고: 이 함수는 예기치 않은 결과를 제공할 수 있습니다. 변형 값은 매우 제한된 경우에만 QJSEngine 에 의해 구성됩니다. Qt 5.14 이전에는 QJSEngine::toScriptValue 이 해당 ECMAScript 유형 대신 더 많은 유형에 대해 생성했습니다. toVariant 을 통해 isVariant
이 거짓을 반환하는 많은 값에 대해 유효한 QVariant 을 얻을 수 있습니다.
toVariant()도 참조하세요 .
QJSValue QJSValue::property(const QString &name) const
주어진 name 과 함께 이 QJSValue 의 속성 값을 반환합니다. 해당 프로퍼티가 존재하지 않으면 정의되지 않은 QJSValue 가 반환됩니다.
프로퍼티가 게터 함수를 사용하여 구현된 경우(즉, PropertyGetter 플래그가 설정된 경우), 게터 함수가 호출되므로(잡히지 않은 스크립트 예외가 발생할 수 있음) 스크립트 엔진에 부작용이 발생할 수 있으므로 property()를 호출할 수 있습니다. 예외가 발생하면 property()는 던져진 값(일반적으로 Error
객체)을 반환합니다.
배열 요소에 액세스하려면 setProperty(quint32 arrayIndex, const QJSValue &value) 오버로드를 대신 사용하세요.
setProperty(), hasProperty() 및 QJSValueIterator 를참조하세요 .
QJSValue QJSValue::property(quint32 arrayIndex) const
이것은 오버로드된 함수입니다.
주어진 arrayIndex 에서 속성을 반환합니다.
배열의 요소에 액세스하는 방법은 두 가지가 있습니다. 첫 번째는 배열 인덱스를 속성 이름으로 사용하는 것입니다:
qDebug() << jsValueArray.property(QLatin1String("4")).toString();
두 번째는 인덱스를 취하는 오버로드를 사용하는 것입니다:
qDebug() << jsValueArray.property(4).toString();
이 두 가지 접근 방식은 후자를 제외하고는 동일한 결과를 얻습니다:
- 사용하기 더 쉽습니다(정수를 직접 사용할 수 있음).
- 더 빠릅니다(정수로 변환할 필요가 없음).
QJSValue 이 배열 객체가 아닌 경우 이 함수는 arrayIndex 의 문자열 표현으로 property() 를 호출한 것처럼 동작합니다.
QJSValue QJSValue::prototype() const
QJSValue 이 객체인 경우 이 객체의 내부 프로토타입(__proto__
속성)을 반환하고, 그렇지 않으면 정의되지 않은 QJSValue 을 반환합니다.
setPrototype() 및 isObject()도 참조하세요 .
void QJSValue::setProperty(const QString &name, const QJSValue &value)
주어진 name 을 사용하여 이 QJSValue 의 속성 값을 주어진 value 으로 설정합니다.
QJSValue 이 객체가 아닌 경우 이 함수는 아무 작업도 수행하지 않습니다.
QJSValue 에 name 이라는 이름의 프로퍼티가 아직 없는 경우 새 프로퍼티가 생성됩니다.
배열 요소를 수정하려면 setProperty(quint32 arrayIndex, const QJSValue &value) 오버로드를 대신 사용하세요.
property() 및 deleteProperty()도 참조하세요 .
void QJSValue::setProperty(quint32 arrayIndex, const QJSValue &value)
이것은 오버로드된 함수입니다.
주어진 arrayIndex 의 속성을 주어진 value 으로 설정합니다.
배열의 요소는 두 가지 방법으로 수정할 수 있습니다. 첫 번째는 배열 인덱스를 속성 이름으로 사용하는 것입니다:
jsValueArray.setProperty(QLatin1String("4"), value);
두 번째는 인덱스를 취하는 오버로드를 사용하는 것입니다:
jsValueArray.setProperty(4, value);
이 두 가지 접근 방식은 후자를 제외하고는 동일한 결과를 얻습니다:
- 사용하기 더 쉽습니다(정수를 직접 사용할 수 있음).
- 더 빠릅니다(정수로 변환할 필요가 없음).
QJSValue 이 배열 객체가 아닌 경우 이 함수는 arrayIndex 의 문자열 표현으로 setProperty() 를 호출한 것처럼 동작합니다.
property(quint32 arrayIndex) 및 Working With Arrays도 참조하십시오 .
void QJSValue::setPrototype(const QJSValue &prototype)
QJSValue 이 객체인 경우 이 객체의 내부 프로토타입(__proto__
속성)을 prototype 으로 설정하고, QJSValue 이 null이면 프로토타입을 null로 설정하며, 그렇지 않으면 아무 작업도 수행하지 않습니다.
내부 프로토타입은 일반적으로 생성자 역할을 하는 함수에만 설정되므로 "프로토타입"이라는 이름의 공용 프로퍼티와 혼동해서는 안 됩니다.
prototype() 및 isObject()도 참조하세요 .
bool QJSValue::strictlyEquals(const QJSValue &other) const
엄격한 비교(변환 없음)를 사용하여 QJSValue 이 other 과 같으면 참을 반환하고, 그렇지 않으면 거짓을 반환합니다. 이 비교는 ECMA-262 섹션 11.9.6, "엄격한 동일성 비교 알고리즘"에 설명된 동작을 따릅니다.
이 QJSValue 의 유형이 other 값의 유형과 다른 경우 이 함수는 false를 반환합니다. 유형이 같으면 결과는 다음 표에 표시된 것처럼 유형에 따라 달라집니다:
유형 | 결과 |
---|---|
정의되지 않음 | true |
Null | true |
부울 | 두 값이 모두 참이면 참, 그렇지 않으면 거짓 |
숫자 | 두 값 중 하나가 NaN(숫자가 아님)이면 거짓, 두 값이 같으면 참, 그렇지 않으면 거짓입니다. |
String | 두 값이 정확히 동일한 문자 시퀀스이면 참, 그렇지 않으면 거짓입니다. |
Object | 두 값이 모두 동일한 객체를 참조하면 참, 그렇지 않으면 거짓입니다. |
equals()도 참조하세요 .
bool QJSValue::toBool() const
ECMA-262 섹션 9.2, "ToBoolean"에 설명된 변환 규칙을 사용하여 이 QJSValue 의 부울 값을 반환합니다.
QJSValue 이 객체인 경우 이 함수를 호출하면 엔진이 객체를 원시 값으로 변환하기 위해 객체의 valueOf() 함수(및 toString())를 호출하므로 스크립트 엔진에 부작용이 발생할 수 있습니다(잡히지 않은 스크립트 예외가 발생할 수 있음).
isBool()도 참조하세요 .
QDateTime QJSValue::toDateTime() const
현지 시간으로 이 값의 QDateTime 표현을 반환합니다. QJSValue 이 날짜가 아니거나 날짜 값이 NaN(숫자가 아님)이면 잘못된 QDateTime 이 반환됩니다.
isDate()도 참조하세요 .
qint32 QJSValue::toInt() const
ECMA-262 섹션 9.5, "ToInt32"에 설명된 변환 규칙을 사용하여 이 QJSValue 의 부호화된 32비트 정수 값을 반환합니다.
QJSValue 이 객체인 경우 이 함수를 호출하면 엔진이 객체를 원시 값으로 변환하기 위해 객체의 valueOf() 함수(및 toString())를 호출하므로 스크립트 엔진에 부작용이 발생할 수 있습니다(잡히지 않은 스크립트 예외가 발생할 수 있음).
toNumber() 및 toUInt()도 참조하세요 .
double QJSValue::toNumber() const
ECMA-262 섹션 9.3, "ToNumber"에 정의된 대로 QJSValue 의 숫자 값을 반환합니다.
QJSValue 이 객체인 경우 이 함수를 호출하면 엔진이 객체를 원시 값으로 변환하기 위해 객체의 valueOf() 함수(및 toString())를 호출하므로 스크립트 엔진에 부작용이 발생할 수 있습니다(잡히지 않은 스크립트 예외가 발생할 수 있음).
isNumber(), toInt() 및 toUInt()도 참조하세요 .
QJSPrimitiveValue QJSValue::toPrimitive() const
값을 QJSPrimitiveValue 으로 변환합니다. 값에 QJSPrimitiveValue 에서 지원하는 유형이 포함되어 있으면 값이 복사됩니다. 그렇지 않으면 값이 문자열로 변환되고 문자열이 QJSPrimitiveValue 에 저장됩니다.
참고: 관리되는 값을 문자열로 변환하면 예외가 발생할 수 있습니다. 특히 기호를 문자열로 강제로 변환할 수 없거나 사용자 정의 toString() 메서드가 throw될 수 있습니다. 이 경우 결과는 정의되지 않은 값이며 엔진은 변환 후 오류를 전달합니다.
const QMetaObject *QJSValue::toQMetaObject() const
* QJSValue 이 QMetaObject 인 경우 QJSValue 이 나타내는 QMetaObject 포인터 *를 반환하고, 그렇지 않으면 nullptr
을 반환합니다. * *
isQMetaObject()도 참조하세요 .
QObject *QJSValue::toQObject() const
QJSValue 이 QObject 인 경우 QJSValue 이 나타내는 QObject 포인터를 반환하고, 그렇지 않으면 nullptr
을 반환합니다.
QJSValue 이 감싸는 QObject 이 삭제된 경우, 이 함수는 nullptr
을 반환합니다(즉, isQObject()가 참을 반환하는 경우에도 toQObject()가 nullptr
을 반환할 수 있습니다).
isQObject()도 참조하십시오 .
QString QJSValue::toString() const
ECMA-262 섹션 9.8, "ToString"에 정의된 대로 QJSValue 의 문자열 값을 반환합니다.
QJSValue 이 객체인 경우 이 함수를 호출하면 엔진이 객체를 원시 값으로 변환하기 위해 객체의 toString() 함수(및 아마도 valueOf())를 호출하므로 스크립트 엔진에 부작용이 있습니다(잡히지 않은 스크립트 예외가 발생할 수 있음).
isString()도 참조하세요 .
quint32 QJSValue::toUInt() const
ECMA-262 섹션 9.6, "ToUint32"에 설명된 변환 규칙을 사용하여 이 QJSValue 의 부호 없는 32비트 정수 값을 반환합니다.
QJSValue 이 객체인 경우 이 함수를 호출하면 엔진이 객체를 원시 값으로 변환하기 위해 객체의 valueOf() 함수(및 toString())를 호출하므로 스크립트 엔진에 부작용이 발생할 수 있습니다(잡히지 않은 스크립트 예외가 발생할 수 있음).
QVariant QJSValue::toVariant(QJSValue::ObjectConversionBehavior behavior) const
이 QJSValue 값이 QVariant 로 변환될 수 있으면 QVariant 값을 반환하고, 그렇지 않으면 유효하지 않은 QVariant 을 반환합니다. 일부 JavaScript 유형과 객체에는 Qt의 네이티브 표현식이 있습니다. 이러한 표현식은 네이티브 표현식으로 변환됩니다. 예를 들면 다음과 같습니다:
입력 유형 | 결과 |
---|---|
Undefined | 잘못된 QVariant 입니다. |
Null | 널 포인터(QMetaType::Nullptr)를 포함하는 QVariant. |
Boolean | 부울 값을 포함하는 QVariant. |
숫자 | 숫자 값을 포함하는 QVariant. |
문자열 | 문자열 값을 포함하는 QVariant. |
QVariant 객체 | 결과는 개체의 QVariant 값입니다(변환되지 않음). |
QObject 객체 | QObject 에 대한 포인터를 포함하는 QVariant 입니다. |
날짜 객체 | 날짜 값(toDateTime())을 포함하는 QVariant 입니다. |
RegularExpression Object | 정규식 값을 포함하는 QVariant. |
다른 유형의 경우 behavior 매개 변수가 관련됩니다. ConvertJSObjects
이 주어지면 최선을 다하지만 손실이 발생할 수 있는 변환이 시도됩니다. 일반 JavaScript 객체는 QVariantMap 로 변환됩니다. JavaScript 배열은 QVariantList 으로 변환됩니다. 각 속성 또는 요소는 QVariant 으로 재귀적으로 변환되며 순환 참조는 따르지 않습니다. JavaScript 함수 객체는 삭제됩니다. RetainJSObjects
이 주어진 경우 QJSValue 은 QVariant::fromValue()을 통해 QVariant 로 래핑됩니다. 결과 변환은 무손실이지만 객체의 내부 구조는 즉시 액세스할 수 없습니다.
isVariant()도 참조하세요 .
QVariant QJSValue::toVariant() const
이 함수는 오버로드된 함수입니다.
toVariant(ConvertJSObjects)를 반환합니다.
isVariant()도 참조하세요 .
QJSValue &QJSValue::operator=(QJSValue &&other)
이동-이 QJSValue 객체에 other 을 할당합니다.
QJSValue &QJSValue::operator=(const QJSValue &other)
QJSValue 에 other 값을 할당합니다.
other 가 객체(isObject()가 참을 반환함)인 경우 기본 객체에 대한 참조만 할당되며 객체 자체는 복사되지 않음에 유의하세요.
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.