= +_ 在 JavaScript 中是什么意思

2022-08-30 00:30:08

我想知道 = +_ 运算符在 JavaScript 中是什么意思。它看起来像是做作业。

例:

hexbin.radius = function(_) {
   if (!arguments.length)
       return r;
   r = +_;
   dx = r * 2 * Math.sin(Math.PI / 3);
   dy = r * 1.5;
   return hexbin;
};

答案 1
r = +_;
  • +试图将任何东西都投射到一个数字上。_
  • _只是一个变量名称(不是运算符),它可能是 ,等等。afoo

例:

+"1"

将“1”转换为纯数字 1。

var _ = "1";
var r = +_;

r现在是 ,不是 。1"1"

此外,根据MDN关于算术运算符的页面

一元加号运算符位于其操作数之前,计算结果为操作数,但会尝试将其转换为数字(如果尚未转换为数字)。[...]它可以转换整数和浮点数的字符串表示形式,以及非字符串值 、 和 。支持十进制和十六进制(前缀)格式的整数。支持负数(但不适用于十六进制)。如果它无法解析特定值,它将计算结果为 。truefalsenull"0x"NaN

还注意到

一元加号是将某些东西转换为数字的最快和首选方式


答案 2

它不是赋值运算符。

  • _只是传递给函数的参数。

    hexbin.radius = function(_) {
                    //       ^ It is passed here
        // ...
    };
    
  • 在下一行前面,将该变量 () 转换为数字或整数值,并将其分配给变量r = +_;+_r

不要将其与 += 运算符混淆