我想知道= +_操作符在JavaScript中是什么意思。它看起来像是在做作业。
例子:
hexbin.radius = function(_) {
if (!arguments.length)
return r;
r = +_;
dx = r * 2 * Math.sin(Math.PI / 3);
dy = r * 1.5;
return hexbin;
};
我想知道= +_操作符在JavaScript中是什么意思。它看起来像是在做作业。
例子:
hexbin.radius = function(_) {
if (!arguments.length)
return r;
r = +_;
dx = r * 2 * Math.sin(Math.PI / 3);
dy = r * 1.5;
return hexbin;
};
当前回答
它将给左边变量一个数字赋新值。
var a=10;
var b="asg";
var c=+a;//return 10
var d=-a;//return -10
var f="10";
var e=+b;
var g=-f;
console.log(e);//NAN
console.log(g);//-10
其他回答
=+实际上是两个运算符=是赋值,+和_是变量名。
如:
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
其中as是一个变量。
_ = + '5'
x = _ + 5
alert(x)
输出10
此外, 有趣的是,你也可以用~(如果字符串是int字符串(float将是整轮到int))实现同样的事情。
y = ~~'5' // notice used two time ~
x = y + 5
alert(x);
也输出10
~是按位的NOT:将其操作数的位反转。我做了两次,幅度没有变化。
r = +_;
+尝试将_转换为一个数字。 _只是一个变量名(不是一个操作符),它可以是a, foo等。
例子:
+"1"
将“1”转换为纯数字1。
var _ = "1";
var r = +_;
R现在是1,不是1。
此外,根据MDN的算术运算符页面:
一元加号运算符在其操作数之前,求值为its 操作数,但如果不是,则尝试将其转换为数字 了。[…它可以转换整数和的字符串表示 浮动,以及非字符串值true, false和null。 十进制和十六进制(“0x”前缀)格式的整数都是 支持。支持负数(但不支持十六进制)。如果它 不能解析一个特定的值,它将计算为NaN。
还注意到
一元加号是将数字转换为数字的最快和首选的方法
+_几乎等同于parseFloat(_)。注意,parseInt将停止在非数字字符,如点,而parshFloat不会。
经验值:
parseFloat(2.4) = 2.4
vs
parseInt(2.4) = 2
vs
+"2.4" = 2.4
经验值:
var _ = "3";
_ = +_;
console.log(_); // will show an integer 3
差别很小:
空字符串""的值为0,而parseInt()的值为NaN 更多信息请看这里:parseInt vs unary + -何时使用which
在这个表达式中:
r = +_;
'+'在这里作为一元操作符,尝试转换右操作数的值。它不转换操作数,而是转换被求值。所以_仍然是1如果它原来是那么r将变成纯数。
考虑这些情况,是否要将+应用于数字转换
+"-0" // 0, not -0
+"1" //1
+"-1" // -1
+"" // 0, in JS "" is converted to 0
+null // 0, in JS null is converted to 0
+undefined // NaN
+"yack!" // NaN
+"NaN" //NaN
+"3.14" // 3.14
var _ = "1"; +_;_ // "1"
var _ = "1"; +_;!!_ //true
var _ = "0"; +_;!!_ //true
var _ = null; +_;!!_ //false
虽然,它是最快的数字转换器,我几乎不建议过度使用它,如果使用的话。parseInt/parseFloat是可读性更好的选择。
= +_将_转换为一个数字。
So
var _ = "1",
r = +_;
console.log(typeof r)
将输出数字。