Skip to content

バリュースタックタイプの操作方法

読み取り値

以下の表は、特定の型(例:文字列)の値を読み取るためのAPIコールをまとめたものである。

Value stack entry typeduk_get_xxx()duk_get_xxx_default()duk_require_xxx()duk_opt_xxx()duk_to_xxx()
none (index out of bounds)default (automatic)default (explicit)TypeErrordefault (explicit)TypeError
undefineddefault (automatic)default (explicit)TypeErrordefault (explicit)coercion
nulldefault (automatic)default (explicit)TypeErrorTypeErrorcoercion
Matching typeas isas isas isas isas is
Non-matching typedefault (automatic)default (explicit)TypeErrorTypeErrorcoercion

文字列の値の具体例。

Value stack entry typeduk_get_string()duk_get_string_default()duk_require_string()duk_opt_string()duk_to_string()
none (index out of bounds)NULLdefault (explicit)TypeErrordefault (explicit)TypeError
undefinedNULLdefault (explicit)TypeErrordefault (explicit)"undefined"
nullNULLdefault (explicit)TypeErrorTypeError"null"
booleanNULLdefault (explicit)TypeErrorTypeError"true"
numberNULLdefault (explicit)TypeErrorTypeError"123.4"
string"hello""hello""hello""hello"
objectNULLdefault (explicit)TypeErrorTypeError"[object Object]"
bufferNULLdefault (explicit)TypeErrorTypeError"[object ArrayBuffer]"
pointerNULLdefault (explicit)TypeErrorTypeError"0xdeadbeef"
lightfuncNULLdefault (explicit)TypeErrorTypeError"function light_08062727_0a11() { [lightfunc code] }"

Notes: 整数ゲッターは、APIの返り値に対して double から integer への強制変換を行います。この強制は、値スタック上の数値を変更しないので、double のままである。