哪种方法可以很好地检查 as3 中保存布尔值的对象变量?

which way is good to check the object variable holding boolean value in as3?

        var myString:Object = "true";
        if (myString.toLowerCase() == "true")

        if (myString is Boolean)

        if (myString == Boolean)

检查对象变量持有布尔值(true 或 false)哪个好。或者哪一个是正确的?

谢谢...

简短的回答是:

第一条指令:if (myString.toLowerCase() == "true").


长答案是:

还是第一条指令:if (myString.toLowerCase() == "true").

因为你真的在检查你的字符串是否等于 "true",而在第二条指令中你检查你的字符串是否为 Boolean,而在第三条指令中你检查你的字符串是否等于 "true"字符串是 Boolean class.

希望能帮到你。

老实说,您的示例代码没有多大意义:您有一个 Object 变量,但您使用 toLowerCase() 假设它是一个 String,但您检查是否也是 Boolean。如果您知道它是一个字符串,请将您的变量设置为 String:

var myString:String = "true";

如果你不知道它是一个字符串,你需要检查它是否是一个字符串,否则当它不是一个字符串时会报错:

if (myObject is String && (myObject as String).toLowerCase() == "true")

如果它可能是一个布尔值,你也应该检查它是否是一个布尔值:

else if(myObject is Boolean && (myObject as Boolean) == true)

一般来说,最好在这段代码之前的某处进行某种解码过程,这样您就知道正在处理的数据类型,并且可以直接进行比较。例如,JSON 数据结构的 JSON.parse() 将导致 boolean 的实际布尔值,您可以将其解码为具有类型 Boolean 属性的类型化对象。您在此处的示例代码非常脆弱。

祝你好运。