使用JavaScript

时间:2018-02-18 11:29:19

标签: javascript if-statement

我是学习编程的初学者,更具体地说是JavaScript。我在学习编码时遇到了一个小问题。当我使用switch语句来解决一个问题时,它会产生正确的输出。

var dateNow = 3;
var dateSuffix;

switch (dateNow) {
  case 1:
  case 21:
  case 31:
    dateSuffix = "st";
    break;
  case 2:
  case 22:
    dateSuffix = "nd";
    break;
  case 3:
  case 23:
    dateSuffix = "rd";
    break;
  default:
    dateSuffix = "th";
    break;
}

console.log("Today is the " + dateNow + dateSuffix + " day.");
    

但是当我对if else语句做同样的事情时,输出是错误的。

var dateNow = 3;
var dateSuffix;

if (dateNow == 1 || 21 || 31) {
  dateSuffix = "st";
} else if (dateNow == 2 || 22) {
  dateSuffix = "nd";
} else if (dateNow == 3 || 23) {
  dateSuffix = "rd";
} else {
  dateSuffix = "th";
}

console.log("Today is " + dateNow + dateSuffix + " day of the month...");

有人可以用if语句指出问题吗?

3 个答案:

答案 0 :(得分:3)

您无法使用dateNow == 1 || 21 || 31

您需要使用[1,21,31].includes(dateNow)

dateNow == 1 || dateNow == 21 || dateNow == 31



var dateNow = 3;
var dateSuffix;

if ([1,21,31].includes(dateNow)) {
  dateSuffix = "st";
} else if ([2,22].includes(dateNow)) {
  dateSuffix = "nd";
} else if ([3,23].includes(dateNow)) {
  dateSuffix = "rd";
} else {
  dateSuffix = "th";
}

console.log("Today is " + dateNow + dateSuffix + " day of the month...");




答案 1 :(得分:-1)



var dateNow = 3;
var dateSuffix;

if (dateNow == 1 || dateNow ==21 || dateNow ==31) {
  dateSuffix = "st";
} else if (dateNow == 2 || dateNow ==22) {
  dateSuffix = "nd";
} else if (dateNow == 3 || dateNow ==23) {
  dateSuffix = "rd";
} else {
  dateSuffix = "th";
}

console.log("Today is " + dateNow + dateSuffix + " day of the month...");



 我替换了你的代码

if (dateNow == 1 || 21 || 31) {

with is if (dateNow == 1 || dateNow ==21 || dateNow ==31) {您的代码仅在条件时首先触发 这段代码可以帮到你

答案 2 :(得分:-1)

更新:正如@Xufox指出的那样,这个答案是不正确的。这是错误的。

除了@ Zenoo的答案之外,我还测试了这段代码:

false
2
false
true
false

结果:

dateNow == 1 || 2

我的解释是(dateNow == 1) || 2被视为multiprocessing.dummy,我们可以看到这是假的。