Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/452.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 在这个代码中| |在做什么?这段代码的目的类似于C中的开关(条件)?_Javascript - Fatal编程技术网

Javascript 在这个代码中| |在做什么?这段代码的目的类似于C中的开关(条件)?

Javascript 在这个代码中| |在做什么?这段代码的目的类似于C中的开关(条件)?,javascript,Javascript,请告诉我这个代码在做什么?这些键是否试图模仿C中的SwitchCondition语法? 我认为,| | Or运算符不仅仅是比较左右,返回T或F,如果它是真的,它会返回左,如果它是假的,它会返回右 g = (a = Object(d.b)("scheduleStore", "userStore"))(u = Object(d.c)(u = function (e) { function t(e) { r(this, t); v

请告诉我这个代码在做什么?这些键是否试图模仿C中的SwitchCondition语法? 我认为,| | Or运算符不仅仅是比较左右,返回T或F,如果它是真的,它会返回左,如果它是假的,它会返回右

    g = (a = Object(d.b)("scheduleStore", "userStore"))(u = Object(d.c)(u = function (e) {
        function t(e) {
            r(this, t);
            var n = i(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this, e));
            return n.state = {
                status: {}
            }, n
        }
  return o(t, e), _(t, [{
     {
        key: "onBook",
        value: function (e) {
            var t = this.props.scheduleStore;
            t.booking || (e.driver_id && (alert("This assignment has been booked. Reloading the page!"), window.location.reload()), t.bookAssignment(e.id).then(function (e) {
                null === e || "error" === e.status || e.status
            }))
        }
    }, {
        key: "onUnBook",
        value: function (e) {
            this.props.scheduleStore.unbookAssignment(e.id).then(function (e) {
                e || alert("Error while cancel the reservation. Reload page!")
            })
        }
    }, {
| |与&&运算符一起被称为短路运算符

使用| |时,只有在第一个表达式产生falsy值后,才会计算第二个表达式。假设我们有以下代码:

设a=1 设b=2 a==1 | |控制台。日志“a不是1” b==1 | |控制台。日志“b不是1” B不是1将被记录到控制台

此外,| |将返回前一个左手表达式的结果(如果它是真实的);否则它将返回后一个的结果。因此,如果我们写:

result.err | | result.data 如果result.err为falsy为0或false或未定义等,则返回result.data,否则返回result.err

&&可以像| |的反向版本一样工作:只有在第一个表达式产生真实值后,才会计算第二个表达式

我个人不建议用它代替if语句,因为它可能会降低代码的可读性


| |运算符首先检查左侧,如果它为真,则返回它并忽略右侧;如果左侧为假,则检查右侧并返回它;如果两者都为假,则返回右侧,因为没有更多的值要检查。我希望这能回答| |运算符的作用。

使用| |来否定未定义或null

例如,在以下行中:

this.props.scheduleStore.unbookAssignment(e.id).then(function (e) {
                e || alert("Error while cancel the reservation. Reload page!")

如果e是未定义的

则| |的右侧将执行| |返回什么并不重要,因为在这个代码段中没有使用| |的结果。我认为关键部分在某种程度上类似于C语言中的结构?这段代码试图返回一个结构??你能详细说明一下关键部分吗?它像C语言中的开关条件吗?@LordArthas它看起来像一个-但我不确定它到底做什么,因为你没有给出u函数的代码。你能帮我一下吗?我和你一样,不知道n或任何其他变量的值,你得猜这段代码背后的逻辑是什么,至少帮助我了解基本逻辑,thx返回n&&417==n.status,200==n.status&&ok==r.status&&t.activeSchedule.ws&&t.activeSchedule.ws.json{。。。