How JavaScript Works 学习笔记 —— How String Works

199 阅读1分钟

计算机能够读懂的是 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" 表示。