请告诉我这段代码在做什么?这些键是否试图像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!")
})
}
}, {
答案 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.err
或0
或false
等,它将返回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
的右侧