我已经阅读了很多 javascript 教程,并且我相信我知道很多事情直到现在。所以我认为看一些用这种语言编写的脚本是个好主意。我的问题是我不知道这条线的真正作用:
var b=Number(ls.autofarm)||0,g,h,i,d,j;
我知道这些行的基础知识,变量名是 b,它的值是 Number(Is.autofarm)||0,g,h,i,j,但为什么是“||” 正在使用?如果有人可以向我解释这条线的作用,那就太好了。
我已经阅读了很多 javascript 教程,并且我相信我知道很多事情直到现在。所以我认为看一些用这种语言编写的脚本是个好主意。我的问题是我不知道这条线的真正作用:
var b=Number(ls.autofarm)||0,g,h,i,d,j;
我知道这些行的基础知识,变量名是 b,它的值是 Number(Is.autofarm)||0,g,h,i,j,但为什么是“||” 正在使用?如果有人可以向我解释这条线的作用,那就太好了。
||
在 javascript 中,通常用作提供默认值的一种方式。第一个非假值或找到的最后一个值“获胜”。
例如
var a = "foo";
var b = null;
var c = a || 2; // c == "foo". a was non-false, so we use that
var d = b || 2; // d == 2. b was false (null, 0, "" are all false), so we moved along
在你的情况下,
// b == Number(ls.autofarm), unless that's false/null/undefined. Then we use 0
var b = Number(ls.autofarm) || 0,
g,h,i,d,j; // a bunch of other variables
线
var b=Number(ls.autofarm)||0,g,h,i,d,j;
如果能帮助你理解,可以分成两部分。
var b = Number(ls.autofarm)||0;
var g,h,i,d,j;
第二行是空变量的声明,而第一行是用值声明 b。如果 || 左侧的值 是假的,使用右边的值。在这种情况下,如果 Number(ls.autofarm) 为 false,则 b 将为 0。
var b=Number(ls.autofarm)||0,g,h,i,d,j
;
在我看来, b 取决于 ls.autofarm 的值或只是 0(零)。
另一个 g,h,i,d,j; 是变量的减速类似于
var b=Number(ls.autofarm)||0;
var g;
var h;
var i;
var d;
var j;
||
是逻辑 OR 运算符,它也是 JavaScript 中的假合并运算符,这意味着如果值不为假,则计算表达式的左侧,否则计算右侧的值。
Falsey值为:false
、空字符串 ''
、0
、null
和undefined
NaN
通常||
用于提供默认值。
function (someArg) {
someArg = someArg || 'test'; // 'test' if someArg is falsey
}
当有多个||
运算符时,它的评估方式如下:
var a = 0 || '' || true || false;
0 || ''
,然后返回''
'' || true
,返回 truetrue
返回。请注意,可以使用单个var
语句声明和初始化多个变量,就像在您的示例中一样。
var b = Number(ls.autofarm) || 0, g, h, i, d, j;
以上初始化b
并Number(ls.autofarm) || 0
声明了g
, h
, i
, d
,j
变量。
这是相关部分(其他字母只是变量声明):
var b=Number(ls.autofarm)||0
如果Number(ls.autofarm)
评估为true
那么它将被分配给b
。如果计算结果为,false
则将分配给 0 b
。