这段代码中的“<+”是啥意思? [复制]

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】:

&lt;+ 不是运算符。您可以简单地将其解释为for (i=0; i &lt; +num; i++),其中+ 是一元加号运算符。一元加号运算符会将num 强制转换为数字。

例如,如果传递给num 的值是"100"(作为String),一元加号运算符会将其强制为100Number)。

MDN contains some examples of unary plus 和其他算术运算符。

【讨论】:

【参考方案2】:

这是解析this的方式;

i < +num

换句话说,num 在运行 &lt; 之前被强制转换为整数。

没有&lt;+。它们被解析为单独的符号。

【讨论】:

【参考方案3】:

+在JS中签到的目的之一就是把右边的部分解析成数字。

const str = '4';
console.log(str + 5); // Concatenared as strings
console.log(+str + 5); // Sums the numbers

在您的情况下,您有一个语句i &lt; +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 中没有+ 也可以工作 你是对的。 &lt; 做同样的事情

以上是关于这段代码中的“<+”是啥意思? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

string::npos 在这段代码中是啥意思?

这是啥意思 x86 汇编代码是啥意思? [复制]

scanf 格式说明符中的星号是啥意思? [复制]

函数签名中变量名前的 * 和 ** 是啥意思? [复制]

CSS媒体查询中的“唯一屏幕”代码是啥意思? [复制]

这些代码中的问号是啥意思? [复制]