In many languages like C or Java, the string is non-primitive data type and it is just array of chars, but in js according to mdn:
https://developer.mozilla.org/en-US/docs/Glossary/Primitive
The string is primitive data type that because it is not an object, unlike the array which is objects.
So if string not an array of chars, so what it is and why can it take properties like array such as .length?