【问题标题】:How should I understand this line? can anybody elaborate on this?我应该如何理解这条线?有人可以详细说明一下吗?
【发布时间】:2020-07-27 10:46:09
【问题描述】:
categoryId = categoryId === '' && location.pathname.match(regExp) ?location.pathname.match(regExp)[1] : categoryId

我知道这是一个三元运算符,但 categoryId === '' && location.pathname.match(regExp) 在这里做什么?特别是对'' && location.pathname.match(regExp) 毫无头绪 是布尔值吗?

【问题讨论】:

标签: javascript


【解决方案1】:

因此,我将带您阅读您提供的代码,在我现在的空闲时间允许的范围内尽可能详细地进行。

categoryId 是一个接受右边结果的变量。因此= 符号。

categoryId === '' 这部分只是将categoryId 中的结果与空字符串'' 进行比较,该字符串将返回一个布尔值。所以它说“categoryId 中的结果是空字符串吗?truefalse

&&这是说我们要检查条件所以检查上面的一个和另一个......

location.pathname.match(regExp) 这是第二次检查...检查 url 路径是否与 regExp 中的某个正则表达式定义/条件匹配(你没有提供,所以我不能说太多)

现在请注意,由于使用了&&,所以两个条件都必须在true 语句运行之前返回true,否则它将是false

?这是在说;如果为真,则运行下一个条件/语句

location.pathname.match(regExp)[1] 这是结果为真时它将运行的条件/语句。

: 这意味着如果它为假,则运行下一个条件/语句

categoryId这是结果为假时运行的条件。

这种类型的条件语句称为“条件/三元运算符”在这里找到更多详细信息:https://www.w3schools.com/js/js_comparisons.asp

我希望这会有所帮助。如果不清楚,请告诉我,以便我澄清。最好的学习方式!

【讨论】:

  • “因此,我将带您阅读您提供的代码,在我现在的空闲时间允许的范围内尽可能详细地进行。” - 如何这与答案有关吗?
  • 只是为了让他知道我正在运行整个代码。如果您认为它无关紧要,请随时编辑。团队合作让梦想成真!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-20
  • 2013-07-06
  • 2017-07-24
  • 1970-01-01
  • 1970-01-01
  • 2021-04-11
相关资源
最近更新 更多