You should use a startup-tagged passage to initialize every variable to a value before using it so you always know what values to test for in these situations. While Harlowe variables default to 0 if they aren't defined, this functionality is undocumented and could change without warning. Always initialize your variables; it's the safest and most foolproof strategy.
Which values to use for initialization is up to you, use whatever makes the most sense. Generally, if the value isn't meant to be set yet, you will probably want to use 0 for numbers, an empty string for strings (""), empty (a:), (ds:), or (dm:) macros for complex data, and false for booleans.