2016-09-16 342 views
-1

几周前我开始学习JavaScript。String(num)是什么意思?

所以我正在做一个JavaScript作业,我不得不在奇数之间添加一个henn。 举例: 输入: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; 
} 

是什么在第2行字符串(NUM)是什么意思?
此外,为什么是var outStr = inStr [0],ii;在第3行? 我得到inStr [0],但是,“ii”是做什么的?

+0

线2 - 创建一个从NUM一个字符串,不管num是什么类型。第3行 –

+0

宣布两个增值税。 outStr和ii。 outStr也被初始化为inStr的第一个字符 –

+0

第2行和第3行可能是一行 - var inStr = String(num),outStr = inStr [0],ii;' –

回答

0

String()变化的东西串 例如:

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

是什么字符串(NUM)是什么意思? 在JavaScript中,字符串()指变量转换成字符串, 仅仅是容易...

Forexample 变种X = 1212323.9; X =字符串(X);

正如您所看到的,它与的镜像完全相同x.toString();
希望它可以帮助...

0

让我们来看看它在MDN

弦乐全局对象的字符串构造函数,或字符序列 。

String(thing) 

参数

thing 任何要被转换为一个字符串。

在非构造函数上下文中(即,不使用new关键字)从字符串调用返回的字符串文字(用双引号或单引号表示)是字符串。

所以它基本上为String对象的构造,但叫不new关键字,这样它会返回一个字符串,而不是一个String对象:

需要注意的是JavaScript字符串对象和 原始区分字符串值。 (同样是布尔和数字也是这样。)

在Node控制台快速测试:

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

简而言之,它的任意数据类型转换成字符串,以便它可以在以后做字符串操作。


由于这一点:

var outStr = inStr[0], ii; 

...它只是一个local variable declaration定义outStrii

变量声明声明一个变量,可选 初始化到一个值。

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

它具有相同的效果:

var outStr = inStr[0]; 
var ii;