什么是||在这段代码中做什么?并且此代码的​​目的类似于C中的switch(condition)?

时间:2019-05-18 03:24:08

标签: javascript

请告诉我这段代码在做什么?这些键是否试图像C中那样模仿Switch(Condition)语法? 我认为||还是算子不只是比较左和右并返回T或F,我猜它是否返回true,否则返回right!

    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!")
            })
        }
    }, {

3 个答案:

答案 0 :(得分:1)

||&&运算符一起被称为短路运算符

使用||时,仅在第一个表达式为假值之后才计算第二个表达式。说我们下面有这些代码:

let a = 1
let b = 2
a == 1 || console.log('A is not 1')
b == 1 || console.log('B is not 1')

B is not 1将被记录到控制台。

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

result.err || result.data

如果result.data虚假(例如result.err0false等,它将返回undefined,否则将返回{{1} }。

result.err可以像&&的反向版本一样工作:第二个表达式只有在第一个表达式为真值之后才计算。

  

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

答案 1 :(得分:0)

||操作员首先检查左侧是否为真,然后返回并忽略右侧;如果左侧为false,则检查右侧并返回,如果均为false,则返回右侧没有更多要检查的值。我希望这能回答||是什么。操作符。

答案 2 :(得分:0)

if被用于求反||undefined

例如以下行:

null

如果this.props.scheduleStore.unbookAssignment(e.id).then(function (e) { e || alert("Error while cancel the reservation. Reload page!") ||,将执行e的右侧