I had to get into an old tcl program for work recently and had the same thought. I wouldn't necessarily pick it today but it was kind of nice in a way that's unfamiliar to me from modern development.
Tcl 8 introduced dual-ported objects. Everything can exist as a typed object that is convertible back to a string in certain cases (some form of string operation typically). That plus the bytecode engine makes it work completely different than prior releases.
No. Tcl is all strings from a language point of view. To your Tcl code, everything is a string.
Internally in the main Tcl implementation, it isn't just strings. It's a bit cleverer so it can be faster. But that is completely invisible to the Tcl programmer.
JavaScript is not just strings. It has real types (even if it is happy to coerce them to strings at the drop of a hat).
To put it another way, JavaScript has `typeof` which returns the type of an object. Tcl doesn't have that because the answer would always be "string".
But tcl 7.x and before was a pure string-based language. Everything was essentially a eval(). People would hit syntax errors on production code.
Fun, painful times.
The flip side: the interpreter is super simple and fun to write.