String(num)是什么意思?

What does String(num) mean?

本文关键字:意思 是什么 num String      更新时间:2023-09-26

我几周前开始学习JavaScript。

我正在做一个JavaScript作业,我必须在奇数之间添加一个连字符。例子:输入:123233输出:12323 - 3

我四处寻找帮助,偶然发现了这个家伙的代码

function insertDashes(num) {
 var inStr = String(num);
 var outStr = inStr[0], ii;
for (ii = 1; ii < inStr.length; ii++) 
{
  if (inStr[ii-1] % 2 !== 0 && inStr[ii] % 2 !== 0) {
  outStr += '-';
}
outStr += inStr[ii];
}
return outStr;
}

第二行中的String(num)是什么意思?
还有,为什么var outStr = inStr[0], ii;在3号线?我得到了inStr[0],但是",ii"是做什么的?

String(num)是什么意思?在javascript中,String()表示将变量转换为字符串,就这么简单…

示例var x=1212323.9;x =字符串(x);

可以看到,它是x.toString();

String()更改为字符串例子:

num = 7
//7
String(num)
//"7"

让我们在MDN:

中查找

String全局对象是字符串或序列的构造函数的字符。

String(thing)
参数

thing要转换为字符串的任何内容

[…]字符串字面量(由双引号或单引号表示)和字符串调用在非构造函数上下文中返回的字符串(即,不使用new关键字)是基本字符串。

所以它基本上是String对象的构造函数,但是调用时没有new关键字,所以它返回字符串字面量而不是String对象:

注意JavaScript区分String对象和原始字符串值。(布尔值和数字也是如此)

Node控制台中快速测试:

> String(123)
'123'
> typeof String(123)
'string'
> new String(123)
[String: '123']
> typeof new String(123)
'object'

简而言之,它将任意数据类型转换为字符串,以便以后可以进行字符串操作。


关于这个:

var outStr = inStr[0], ii;

…它只是一个局部变量声明,定义了outStrii:

变量语句声明一个变量,可选择初始化它到一个值

var varname1 [= value1] [, varname2 [= value2] ... [, varnameN [= valueN]]]];

效果相同
var outStr = inStr[0];
var ii;