这段代码中的“<+”是啥意思? [复制]
Posted
技术标签:
【中文标题】这段代码中的“<+”是啥意思? [复制]【英文标题】:What does "<+" mean in this code? [duplicate]这段代码中的“<+”是什么意思? [复制] 【发布时间】:2018-07-07 18:55:44 【问题描述】:我遇到了这个奇怪的假定操作员,我无法弄清楚它是什么。有什么想法吗?
var laugh = function(num)
var string="";
for (i=0; i<+num; i++)
string+="ha";
return string + "!";
;
console.log(laugh(10));
【问题讨论】:
这个 ' 【参考方案1】:<+
不是运算符。您可以简单地将其解释为for (i=0; i < +num; i++)
,其中+
是一元加号运算符。一元加号运算符会将num
强制转换为数字。
例如,如果传递给num
的值是"100"
(作为String
),一元加号运算符会将其强制为100
(Number
)。
MDN contains some examples of unary plus 和其他算术运算符。
【讨论】:
【参考方案2】:这是解析this的方式;
i < +num
换句话说,num
在运行 <
之前被强制转换为整数。
没有<+
。它们被解析为单独的符号。
【讨论】:
【参考方案3】:+
在JS中签到的目的之一就是把右边的部分解析成数字。
const str = '4';
console.log(str + 5); // Concatenared as strings
console.log(+str + 5); // Sums the numbers
在您的情况下,您有一个语句i < +num
,它只是将num
解析为数字并i
与之比较。如果你的num
是一个数字,这将不起作用。
看。我使用了'10'
而不是10
,它仍然有效,因为给定的字符串被解析为数字。
var laugh = function(num)
var string="";
for (var i = 0; i < +num; i++)
string+="ha";
return string + "!";
;
console.log(laugh('10'));
【讨论】:
'10'
即使在+num
中没有+
也可以工作
你是对的。 <
做同样的事情以上是关于这段代码中的“<+”是啥意思? [复制]的主要内容,如果未能解决你的问题,请参考以下文章