Strange behavior when adding twho or more fields via ||

I am seeing something strange in one of my N!QL query’s. I have a property section in my doc and some docs have been geo coded my google and have additional info. so because i dont know if that’s the case i have a conditional statment for the field. the idea is to always return streetName and street Suffix but conditionaly if it exists add the streetType and space or nothing. In my case it seems to only return streetName if the streetSuffix exists .
Is this an expected behavior when you try to add two fields via || and one does not exist that it returns nothing ?

f.PropertyAddress.streetName || IFMISSINGORNULL(" " || f.PropertyAddress.streetType || " ", "") || f.PropertyAddress.streetSuffix AS streetName,

During concat if one filed is not string (i.e. MISSING,NULL, number, object, array) result will be null

|| IFMISSINGORNULL(" " || f.PropertyAddress.streetType || " ", "") 
|| IFMISSINGORNULL(f.PropertyAddress.streetSuffix,"") AS streetName,

Yeap i learned that the hard way , i did not see anything about that in the official docs. So basically every time you do a concat you should check if the field exists and not null to avoid null returns

most functions return type might documented.
If function expects certain type of arguments, passed wrong once result will be NULL.