Dim*_*try 251 javascript operators
我想知道= + _运算符在JavaScript中意味着什么.它看起来像是作业.
例:
hexbin.radius = function(_) {
if (!arguments.length)
return r;
r = +_;
dx = r * 2 * Math.sin(Math.PI / 3);
dy = r * 1.5;
return hexbin;
};
Run Code Online (Sandbox Code Playgroud)
mpm*_*mpm 394
r = +_;
Run Code Online (Sandbox Code Playgroud)
+
试图将任何东西投射_
到一个数字上._
是只有一个变量名称(而不是操作者),它可以是a
,foo
等例:
+"1"
Run Code Online (Sandbox Code Playgroud)
将"1"强制转换为纯数字1.
var _ = "1";
var r = +_;
Run Code Online (Sandbox Code Playgroud)
r
现在1
,不是"1"
.
一元加运算符在其操作数之前,并计算其操作数,但尝试将其转换为数字(如果尚未).[...]它可以转换整数和浮点数的字符串表示,以及非字符串值
true
,false
和null
.支持十进制和十六进制( -"0x"
前缀)格式的整数.支持负数(但不支持十六进制).如果它无法解析特定值,它将评估为NaN
.
还注意到
unary plus是将某些东西转换为数字的最快和首选方式
Sta*_*arx 95
它不是赋值运算符.
_
只是传递给函数的参数.
hexbin.radius = function(_) {
// ^ It is passed here
// ...
};
Run Code Online (Sandbox Code Playgroud)在下一行,r = +_;
+
infront将变量(_
)转换为数字或整数值,并将其赋值给变量r
不要与+=
操作员混淆
Gri*_*han 54
=+
实际上是两个运算符=
是赋值+
而且 _
是变量名.
喜欢:
i = + 5;
or
j = + i;
or
i = + _;
Run Code Online (Sandbox Code Playgroud)
我的以下代码将帮助您显示=+
将字符串 转换为int的用法.
例:
y = +'5'
x = y +5
alert(x);
Run Code Online (Sandbox Code Playgroud)
产出10
使用:所以这里y
是int 5
因为=+
否则:
y = '5'
x = y +5
alert(x);
Run Code Online (Sandbox Code Playgroud)
输出55
_
变量在哪里.
_ = + '5'
x = _ + 5
alert(x)
Run Code Online (Sandbox Code Playgroud)
产出10
另外,
知道你也可以实现同样的事情会很有趣~
(如果string是int string (float将循环到int))
y = ~~'5' // notice used two time ~
x = y + 5
alert(x);
Run Code Online (Sandbox Code Playgroud)
也输出10
~
是按位NOT:反转其操作数的位.我做了两次没有改变幅度.
Ovi*_*lia 16
事实并非如此=+
.在JavaScript中,+
意味着将其更改为数字.
+'32'
返回32.
+'a'
返回NaN.
因此,您可以使用isNaN()
它来检查它是否可以更改为数字.
SDC*_*SDC 16
这是一个偷偷摸摸的.
要理解的重要一点是,这里的下划线字符实际上是变量名称,而不是运算符.
前面的加号是获得下划线的正数值 - 即有效地将下划线变量转换为int.您可以使用相同的效果parseInt()
,但这里可能会使用加号,因为它更简洁.
而这只是将等号作为标准变量赋值.
它可能不是故意编写的混淆,因为有经验的Javascript程序员通常会将下划线视为变量.但如果你不知道它肯定是非常令人困惑的.我当然不会这样写; 在最好的情况下,我不喜欢简短无意义的变量名称 - 如果你想在JS代码中使用短变量名来节省空间,可以使用缩小器; 不要用短变量来编写它.
小智 12
= + _会将_转换为数字.
所以
var _ = "1",
r = +_;
console.log(typeof r)
Run Code Online (Sandbox Code Playgroud)
会输出数字.
_
只是一个变量名,作为函数的参数传递hexbin.radius
,并将+
其转换为数字
让我像你的功能一样做一个例子.
var hexbin = {},r ;
hexbin.radius = function(_) {
if (!arguments.length)
return r;
console.log( _ , typeof _ )
r = +_;
console.log( r , typeof r , isNaN(r) );
}
Run Code Online (Sandbox Code Playgroud)
并运行此示例函数..输出
hexbin.radius("1");
1 string
1 number false
Run Code Online (Sandbox Code Playgroud)
hexbin.radius(1);
1 number
1 number false
Run Code Online (Sandbox Code Playgroud)
hexbin.radius([]);
[] object
0 number false
Run Code Online (Sandbox Code Playgroud)
hexbin.radius('a');
a string
NaN number true
Run Code Online (Sandbox Code Playgroud)
hexbin.radius({});
Object {} object
NaN number true
Run Code Online (Sandbox Code Playgroud)
hexbin.radius(true);
true boolean
1 number false
Run Code Online (Sandbox Code Playgroud)
它会为左侧变量赋一个新值.
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
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
26199 次 |
最近记录: |