什么= +

我想知道= + _运算符在JavaScript中意味着什么。 它看起来像是做任务。

例:

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

r = +_;
  • +尝试将任何_转换为数字。
  • _只是一个变量名(不是操作符),它可能是“a”,“foo”等。
  • 例:

    +"1"
    

    将“1”投射到纯数字1。

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

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

    此外,根据算术操作符的MDN页面:

    一元加运算符在它的操作数之前并且计算到它的操作数,但是试图将它转换成一个数字(如果它还没有的话) 。 [...]它可以转换整数和浮点数的字符串表示形式,以及非字符串值truefalsenull 。 支持十进制和十六进制( "0x"前缀)格式的整数。 支持负数(不适用于十六进制)。 如果它无法解析某个特定值,它将评估为NaN

    还有人指出

    unary plus是将某些东西转换为数字的最快和首选方式


    它不是一个赋值运算符。

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

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

  • 不要用+=运算符来确认它


    =+实际上是两个运算符=赋值和+_是变量名称。

    喜欢:

    i = + 5;
    or 
    j = + i;
    or 
    i = + _;
    

    我的以下代码将帮助您显示使用=+将字符串转换为int。
    例:

    y = +'5'
    x = y +5
    alert(x);
    

    输出10

    使用:所以这里y是int 5因为=+
    除此以外:

    y = '5'
    x = y +5
    alert(x);
    

    输出55

    作为_是变量的地方。

    _ = + '5'
    x = _ + 5
    alert(x)
    

    输出10

    此外,知道你也可以用~实现同样的事情会很有意思(如果string是int string(float将被舍入为int))

    y = ~~'5'  // notice used two time ~
    x = y  + 5
    alert(x);
    

    也输出10

    ~是按位NOT:反转其操作数的位。 我做了两次,没有变化。

    链接地址: http://www.djcxy.com/p/2033.html

    上一篇: What does = +

    下一篇: =) operator in Java