我在HighStock js中发现他们写了类似
的语法n= +Number || 0
任何人都可以请expalin意味着什么意思?
由于
答案 0 :(得分:4)
这是:
n= +Number || 0;
变量n
将被赋予一个应为typeof == number
的值。如果number是string,那么+number
将是将字符串数值转换为数字的简写。
因此,如果值为"20"
,则为String值,如果您在其前面添加+
符号,则它将转换为类似20
的整数。
下面:
n= +Number || 0;
如果var Integer 0
/或undefined中没有值,则会分配 Number
。
var number = "20", nonumber;
var n = +number || 0;
$('p:eq(0)').text(n);
var o = +nonumber || 0;
$('p:eq(1)').text(o);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p></p>
<p></p>
答案 1 :(得分:2)
这意味着如果Number
变量为not defined
或its not numeric
,则将0
分配给n
变量。
实施例
Example 1>
var Number = 'test';
n= +Number || 0;
O/P:
n = 0
--------------------------------------------
Example 2>
var Number = 2;
n= +Number || 0;
O/P:
n = 2
--------------------------------------------
Example 3>
n= +Number || 0;
O/P:
n = 0
答案 2 :(得分:1)
基本上,当你在变量之前有+
或-
时(即+Number
),变量会被转换为类型 number 。因此要么成功,要么数字是输出,要么转换失败并返回NaN
( N ot a N 红棕色)。
由于在大多数浏览器中Number
引用了 number 类型的对象构造函数,因此未定义将其转换为数值,因此结果为{{1 JavaScript,它解释为false值。因此:
NaN
除非已在本地定义了数字并且是一个数字(或者可以将其转换为数字)。
以下描述了每种类型如何被转换为数字:
+Number || 0 == NaN || 0 == 0