我几周前开始学习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;
…它只是一个局部变量声明,定义了outStr
和ii
:
变量语句声明一个变量,可选择初始化它到一个值
var varname1 [= value1] [, varname2 [= value2] ... [, varnameN [= valueN]]]];
与
效果相同var outStr = inStr[0];
var ii;