Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 与旧项目进行对比,并找到我不知道的代码';我不明白_Javascript - Fatal编程技术网

Javascript 与旧项目进行对比,并找到我不知道的代码';我不明白

Javascript 与旧项目进行对比,并找到我不知道的代码';我不明白,javascript,Javascript,我不懂下面的代码,请给我解释一下 我很抱歉这看起来很奇怪,但我必须理解 reverse = [-1, 1][+!!reverse]; 让我们假设reverse=5,然后!5为假因为除0之外的每个数字都是thruty,现在如果我们再次求反!false我们得到true并最终使用+将布尔表达式转换为1或0 var reverse = 5; reverse = [-1, 1][+!!reverse]; 与 var reverse = 5; reverse = [-1, 1][1]; 更明确地说,可

我不懂下面的代码,请给我解释一下
我很抱歉这看起来很奇怪,但我必须理解

reverse = [-1, 1][+!!reverse];

让我们假设
reverse=5
,然后
!5
因为除0之外的每个数字都是thruty,现在如果我们再次求反
!false
我们得到
true
并最终使用
+
将布尔表达式转换为1或0

var reverse = 5;
reverse = [-1, 1][+!!reverse];

var reverse = 5;
reverse = [-1, 1][1];
更明确地说,可能是:

var reverse = 5;
reverse = [-1, 1][Number(Boolean(reverse))];

让我们假设
reverse=5
,然后
!5
因为除0之外的每个数字都是thruty,现在如果我们再次求反
!false
我们得到
true
并最终使用
+
将布尔表达式转换为1或0

var reverse = 5;
reverse = [-1, 1][+!!reverse];

var reverse = 5;
reverse = [-1, 1][1];
更明确地说,可能是:

var reverse = 5;
reverse = [-1, 1][Number(Boolean(reverse))];

!!反向
将变量转换为布尔值

+!!反向“
将其转换为数字(0或1)

该数字用作左侧数组的索引

因此,如果原始值为falsy,则整个语句将
reverse
设置为-1;如果原始值为truthy,则整个语句将设置为1

纠正上述陈述的更简单方法是


reverse=反向?1:-1;

!!反向
将变量转换为布尔值

+!!反向“
将其转换为数字(0或1)

该数字用作左侧数组的索引

因此,如果原始值为falsy,则整个语句将
reverse
设置为-1;如果原始值为truthy,则整个语句将设置为1

纠正上述陈述的更简单方法是


reverse=反向?1:-1;

好吧,这是一个自称聪明的人写的,但他忘了伟大的代码不仅速度快,而且容易阅读

第一部分

[-1,1] 
构造一个数组,索引0处为-1,索引1处为1

!!reverse
将反向转换为真正的布尔值

+运算符的一元版本(一元运算符是只接受一个参数的运算符)将反转的布尔版本转换为数字


这意味着,如果reverse是真实的,reverse将被更改为1,而如果它是falsy,它将被更改为-1。

好的,这是由一位自称相当聪明的人写的,但他忘记了伟大的代码不仅速度快,而且容易阅读

第一部分

[-1,1] 
构造一个数组,索引0处为-1,索引1处为1

!!reverse
将反向转换为真正的布尔值

+运算符的一元版本(一元运算符是只接受一个参数的运算符)将反转的布尔版本转换为数字


这意味着,如果reverse是真的,reverse将被更改为1,而如果它是假的,它将被更改为-1。

挥动魔杖并说“显示更多代码”,这似乎使用了一个名为reverse的变量,如果它是真的-y,它将成为数字1,如果它是假的-y,它将成为-1。如果你能为这一行提供更多的上下文,我相信有人会给出一个更准确的答案。我理解!!什么也不做,因为它忽略了两次,对吗?+将其从真|假值转换为0或1。还有!!什么都不做,第一个
检查它是否为假,然后第二个
翻转答案。如果您只有反转的真/假值,那么它似乎什么也不做。但是你可以看到,如果你使用非真/假值进行反转,它确实会产生影响。挥动魔杖,说“显示更多代码”,这似乎是使用了一个称为反转的变量,如果它是真的,它将成为数字1,如果它是假的,它将成为-1。如果你能为这一行提供更多的上下文,我相信有人会给出一个更准确的答案。我理解!!什么也不做,因为它忽略了两次,对吗?+将其从真|假值转换为0或1。还有!!什么都不做,第一个
检查它是否为假,然后第二个
翻转答案。如果您只有反转的真/假值,那么它似乎什么也不做。但您可以看到,如果使用非真/假值进行反转,它确实会产生影响。