Object Attribute values for empty values -- behavior and best practice?

I have had to use objects a bit in my application and was looking for confirmation and best practice as pertains to empty attribute values.

Boolean attributes: I want to check if the user has not selected true or false. So the initial value of the attribute should be? And how would I check to confirm the user actually made a selection? In the documentation I read that any boolean value defaults to false, but a third unslected or empty option or null or something would be a great option for an initial value so we can check to see if user made a selction.

Numeric: If the initial attribute value is not set to any number what should it be set to? How do i confirm that the user did not enter any number into the field ie did not change the initial value of the attribute?

String: Do I set “” as the intial value and then can i use object.stringattribute == “” or something to test it? or do i need to use Length(object.stringattribute) == 0 to test if nothing entered?

object: Is it workable to not create any attributes initially, and then expect the attributes will be created automatically as needed? ie
newacctobject = {}

Then in functions can i just do: newacctobject.mynewstringattribute = “Joe” and expect that the mynewstringattribute will be automatically created within the object on the fly and assigned the value “Joe”?

Thanks for any pointers.