【问题标题】: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));

【问题讨论】:

  • 这个 '

标签: javascript


【解决方案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; 做同样的事情
      猜你喜欢
      • 2012-03-14
      • 2014-01-10
      • 2014-01-05
      • 2011-08-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-28
      相关资源
      最近更新 更多