我想知道= +_运算符在 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;
};
r = +_;
+
尝试将任何_
内容转换为数字。_
只是一个变量名(不是一个运算符),它可以是a
,foo
等等。例子:
+"1"
将“1”转换为纯数字 1。
var _ = "1";
var r = +_;
r
是现在1
,不是"1"
。
一元加号运算符位于其操作数之前并计算其操作数,但尝试将其转换为数字(如果尚未转换为数字)。[...]它可以转换整数和浮点数的字符串表示,以及非字符串值
true
,false
和null
。支持十进制和十六进制(-"0x"
前缀)格式的整数。支持负数(尽管不支持十六进制)。如果它无法解析特定值,它将评估为NaN
。
还应注意的是
一元加号是将某物转换为数字的最快和首选方式
它不是赋值运算符。
_
只是传递给函数的参数。
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
是 int5
因为=+
否则:
y = '5'
x = y +5
alert(x);
输出55
其中 as_
是一个变量。
_ = + '5'
x = _ + 5
alert(x)
输出10
此外,
知道你也可以用~
(如果字符串是int字符串(浮点数将舍入为整数)) 来实现同样的事情会很有趣
y = ~~'5' // notice used two time ~
x = y + 5
alert(x);
也输出10
~
按位非:反转其操作数的位。我做了两次,幅度没有变化。
不是=+
。在 JavaScript 中,+
意味着将其转换为数字。
+'32'
返回 32。
+'a'
返回 NaN。
所以你可以isNaN()
用来检查它是否可以变成数字。
这是一个偷偷摸摸的。
需要理解的重要一点是,这里的下划线字符实际上是一个变量名,而不是一个运算符。
前面的加号是获得下划线的正数值——即有效地将下划线变量转换为整数。您可以使用 实现相同的效果parseInt()
,但此处可能使用加号转换,因为它更简洁。
这只是将等号作为标准变量赋值。
它可能不是故意编写来混淆的,因为有经验的 Javascript 程序员通常会将下划线识别为变量。但是如果你不知道那肯定是很混乱的。我当然不会那样写;在最好的情况下,我不喜欢简短的无意义变量名——如果你想在 JS 代码中使用简短的变量名来节省空间,请使用压缩器;不要用短变量开始编写它。