Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/421.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.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,我在一个项目中发现了这行代码,我无法使用它 return d.isPointInside(a, b) ? (console.log("runned"), c = !0, !1) : void 0 我无法理解其中的部分: (console.log("runned"), c = !0, !1) “runned”一词应该显示在浏览器的控制台中,但需要一些帮助来理解其余部分。只是一些类型的杂耍 !0 === true !1 === false void 0 === undefined 结果是一些较

我在一个项目中发现了这行代码,我无法使用它

return d.isPointInside(a, b) ? (console.log("runned"), c = !0, !1) : void 0
我无法理解其中的部分:

(console.log("runned"), c = !0, !1)

“runned”一词应该显示在浏览器的控制台中,但需要一些帮助来理解其余部分。

只是一些类型的杂耍

!0 === true
!1 === false
void 0 === undefined
结果是一些较长的单词:

(console.log("runned"), c = true, false);
完整的return语句如下所示,不使用


逗号只是创建了一个序列,所以这个语句最终会返回!1这是错误的。代码利用序列语法生成输出到控制台和设置变量的副产品

它类似于:

变量a、b、c

它声明变量,但不处理它们。这同样有效:

变量a=7,b=someComplexCalculation(),c

!!1为false,有点无用,但在JavaScript中这是一种有用的形式,因为它强制类型为布尔型。在开发时,改变可能会有用!一对一!a、 它保证返回一个布尔值

序列的最后一个值完成语句,并充当返回值

因此:

X=(3,Math.sqrt(2),“某物”)


将设置X=“something”

首先,代码使用的是JavaScript中的,它计算所有内容,但只返回最后一个元素。例如
var a=1,2,3
将始终等于3,因为只返回最后一项

考虑到这一点,让我们看看您不理解的代码:

(console.log("runned"), c = !0, !1)
由于使用逗号运算符,这将分解为三个表达式,将按顺序进行计算:

console.log("runned")
将在控制台中打印给定的单词

c = !0
true
的值分配给变量
c
。这是因为零是一个错误的值,当使用not运算符
转换为相反的值时生成
真值

`!1`
最后,这个表达式的结果将从括号内的整个部分返回。与上面类似,这使用了
1
是真实值的事实,因此
!1
将产生

因此,作为一个整体,代码将在一行中打印、赋值和返回值


考虑到使用的语法和变量,我的假设是这是一个小型化的代码。缩小以类似的方式使用语言规则,以减少使用的字符量。在partucular
中!0和
!1
是非常常见的
true
false
的替换,因为后者至少是长度的一半。

此语句将返回!1这是错误的
您应该详细说明您的答案。谢谢,这些回答非常有用。可能有助于理解
`!1`