计算机能够读懂的是 bit, 人类能够读懂的是文字,bit 与 string 的转换可以说是认为与计算机沟通的媒介。当然,对于计算机而言,string 本质上是方便人类阅读的 bits,只是以固定的形式展现而已。
Foundatin
string 本质上是一个 16 bit unsigned 数字(0-65535)的不可变数组。当然,这本质上是因为,JS 使用 UTF-16 编码。所以说:
- string 可以以 array 的方式操作。length。
- string 可以跟数字相互转换,
String.fromCharCode,String.prototype.chaCodeAt,比如:String.fromCharCode(97) //"a" "a".charCodeAt() // 97
当然,也有些不同:
- indexOf, string 中传入的是一个 string, 而非单个元素。其他方法,includes, lastIndexOf, startsWith, endsWith 也都类似
- string 的 === 会逐个比较值,而不是像数组一样比较地址。
Unicode
- string 中 + 表示字符串的连接,如果两侧存在不是 string, + 会自动做类似那个转换:
- 至少一侧是 string
- 至少一侧使用了 String(number)
\可以用来转译',\,或者换行符。- JS 中并没有单独的 char 类型,单个字符可以同样用
"x"表示。