为什么 Array(“1”,“2”,“3”).join() 在 JavaScript 中将字符串转换为数字
Why does Array("1","2","3").join() convert strings to numbers in JavaScript?
我有一个JavaScript数字数组,比如
Array("1","2","3")
我想将其转换为一个字符串,保留每个数字周围的引号,如下所示
'"1","2","3"'
但是 Array.join() 和 Array.toString() 函数去掉了引号。
"1,2,3"
如何将我的数组转换为保留引号的字符串?
定义字符串的引号是javascript语言的一部分,而不是字符串本身的一部分。
如果希望也连接引号,则应在字符串中包含引号
Array("'"1'"","'"2'"","'"3'"")
它没有。字符串周围的引号是一种符号,告诉系统您要创建一个字符串;它们不是字符串本身的一部分。所以当你加入["1","2","3"]时,你会得到"123",因为这是三个字符串的内容。它恰好看起来和数字一样,但这只是一个巧合。
有几种方法可以将引号添加到字符串中。通常,您需要以某种方式逃离它们。在 JavaScript 中执行此操作的最简单方法是在要转义的字符前面放置一个反斜杠 (''),如下所示:
Array("'"1'"","'"2"'","'"3'")
如果您真的想要一个反斜杠字符,那么当您转义它时,它看起来像两个反斜杠 ('''')。事实上,我必须这样做才能在此回复中键入反斜杠。
JavaScript 中还有另一个选项:单引号字符串。在 JavaScript 中,单引号字符串和双引号字符串之间的唯一区别是每种类型都可以包含其他类型的引号而不必对其进行转义,因此您可以执行以下操作:
Array('"1"','"2"','"3"')
或者,如果您希望在数字两边使用单引号而不是双引号,则可以这样做:
Array("'1'","'2'","'3'")
但要小心单引号字符串。JavaScript 对单引号和双引号字符串的处理方式几乎相同,但并非所有语言都如此。例如,在 C 和 C++ 中,单引号"字符串"只能是一个字符长,而双引号字符串可以是任意长度。Perl、PHP 和 Ruby 允许这两种类型为任意长度,但不对单引号字符串执行变量替换。如果你使用的唯一语言是JavaScript,那么这没什么大不了的,但它可能会导致一些陷阱,如果你同时使用多种语言,你需要注意这些陷阱。
每个数字周围的引号用于让 Javascript 知道引号括起来的对象实际上是字符串,因此它们不是字符串的一部分。
Array('"1"', '"2"', '"3"');
应该工作。
你可以这样做
var a = ''"'+Array("1","2","3").join('","')+''"'
- Javascript逻辑运算符和字符串/数字
- Javascript排序字符串或数字
- 制作一个regex来验证只有一个数字的字符串
- 将数字转换为字符串数字
- 将HTML(支持文件)中的令牌(字符串、数字等)传递给LogiXML
- 如何从字符串中删除除字母、数字、空格、感叹号和问号之外的所有内容
- 如何替换JavaScript字符串中除字母和数字之外的所有内容(空格/符号)
- 从JS中的字符串中读取数字的库
- 字符串数字-从123456转换为123456
- JavaScript如何面对字符串数字工作
- 将字符串数字的格式设置为货币
- Javascript:如何检索*字符串*数字的小数位数
- 试图理解无法在JavaScript中改变字符串/数字的概念
- Javascript没有使用parseInt函数添加两个字符串数字
- 在jQuery中将整数格式化为字符串数字
- Regex格式字符串数字与逗号和2个小数在javascript
- 如何使用javascript排序字符串数字
- 转换'字符串数字'到一个数字
- 检查字符串/数字类型的字段是否为空
- JavaScript:将字符串/数字转换为数字或null,0返回0