Javascript ES6多行字符串是否有最大长度?

Javascript ES6多行字符串是否有最大长度?,javascript,string,Javascript,String,JavaScript,特别是ES6+中字符串的可能字符长度是否有上限 你能这样做吗 const wowThisIsALongString = `${collectedWorksOfWilliamShakespeare}` [我会手工写出收集的作品,但我觉得很懒。] 如果我理解正确(很可能我没有),JavaScript字符串只是一种特殊的JavaScript,所以技术上没有限制 但实际情况可能有所不同 编辑/更新:正如人们所指出的,字符串原语不是对象。在检查ECMAScript 2015规范之前

JavaScript,特别是ES6+中字符串的可能字符长度是否有上限

你能这样做吗

const wowThisIsALongString = `${collectedWorksOfWilliamShakespeare}`
[我会手工写出收集的作品,但我觉得很懒。]

如果我理解正确(很可能我没有),JavaScript字符串只是一种特殊的JavaScript,所以技术上没有限制

但实际情况可能有所不同

编辑/更新:正如人们所指出的,字符串原语不是对象。在检查ECMAScript 2015规范之前,我从来没有想过它是这样的

4.3.17字符串值

基元值,它是一个零或更多的有限有序序列 16位无符号整数

注意:字符串值是字符串类型的成员。每个整数值 在序列中,通常表示UTF-16的单个16位单元 文本。但是,ECMAScript没有任何限制或限制 对值的要求,但值必须为16位无符号 整数

4.3.18字符串类型

所有可能字符串值的集合

4.3.19字符串对象

作为标准内置对象实例的对象类型的成员 字符串构造函数

注意:字符串对象是通过在 新表达式,提供字符串值作为参数。结果 对象有一个值为字符串值的内部插槽。一串 对象可以通过调用字符串强制为字符串值 构造函数作为函数(21.1.1.1)

所以,当他们写这个的时候,意思是字符串对象是包含字符串的对象,或者。。。还有别的吗


另一个更新:我想Ryan已经在下面回答了这个问题。

指定长度为253− 1英寸:

字符串类型是零或多个16位无符号整数值(“元素”)的所有有序序列的集合,最大长度为253-1个元素

这是以JavaScript数字表示的最高整数:

> 2**53 === 2**53 - 1
false

> 2**53 === 2**53 + 1
true
单个发动机可能有较小的限制。例如,V8将其字符串限制为228− 14个字符


旁注:基本字符串不是对象,但这与长度限制没有多大关系。JavaScript有一个“原始包装器”的错误功能,允许字符串、数字和布尔值被对象包装,这就是您链接的部分所指的,但没有理由使用它。

字符串在JavaScript中是一种原始类型,而不是对象<代码>字符串在引擎盖下使用,但字符串文字不是对象。这取决于实现。为什么要重新开放呢。重复的问题有效。请添加其他重复的问题,而不是重新打开,如以下问题:。很明显,这个问题以前曾多次以不同的方式被问过。关于String vs.String:String只是一个char[],但是为了能够调用字符串上的方法,它们被String对象“hi”.toString()…所以基本上是因为String.length不应该溢出?@Jonasw:Right。(以及其他需要使用字符串中的索引的内容)这并不重要,因为您没有足够的ram来存储这样的字符串。2^53 16位值为18.01 PB