JavaScript values have types even when a variable has no annotation. A number, a string, and a boolean can look similar in a table while behaving differently in code. Start by inspecting the value you received. Converting it too early can hide a bad input. The typeof operator has two historical surprises: null reports object, and arrays also report object. You need an explicit null comparison and Array.isArray when those distinctions matter. In these exercises, the function signature describes what can arrive, and the return type describes what your caller should receive. BigInt preserves integers beyond the safe Number range, and Symbol creates identity-based keys. Keep zeros and empty strings when the contract permits them.