Conclusions: Among the five approaches listed in the table only {}.toString.call(v) works for all tricky values. If we don’t need to be 100% safe and would like to be less verbose then String(v) is also a good solution. What does {}.toString.call(v) mean? # The following two expressions are equivalent: {}.toString.call(v) Object.prototype.toString.call(v) We are invoking .toString() but we are no