Почему моя функция, использующая интерполяцию строк, выдает мне две разные ошибки, основанные на следующем коде. Javascript - PullRequest
0 голосов
/ 19 апреля 2020

Я выяснил, как заставить код работать правильно, определив отдельную локальную переменную для хранения возвращенного значения функции. Мне просто любопытно, почему использование $ {total} приводит к двум различным строкам на основе следующего кода.

Следующий код интерполирует тело функции в строку.

function placeOrder(cardNumber) {
  if (typeof cardNumber === 'undefined') {
    return "Sorry, we don't have a credit card on file for you."
  } else {
    let cartTotal = total();
    cart = []
    return `Your total cost is $${total}, which will be charged to the card ${cardNumber}.`
  }
}

Следующий код вставляет возвращаемое значение функции total и использует это значение в строке, а также выдает ошибку типа, что total не является функцией

function placeOrder(cardNumber) {
  if (typeof cardNumber === 'undefined') {
    return "Sorry, we don't have a credit card on file for you."
  } else {
    total = total();
    cart = []
    return `Your total cost is $${total}, which will be charged to the card ${cardNumber}.`
  }
}

1 Ответ

0 голосов
/ 19 апреля 2020

решаемая. Я переписывал функцию total () с возвращаемым значением во втором примере, что позволило мне получить правильный ответ 1 раз. В первом коде я не переписал функцию, а когда я ее интерполировал, я получил тело функции.

...