Почему мы используем оператор return только между условиями if?

avatar
ATIQ UR REHMAN
9 августа 2021 в 05:48
76
4
1

Почему мы возвращаем только между ними, если условие. Кто-нибудь может помочь мне понять это состояние?

  if (!name.trim()) {
  return;
}
Источник
Yousaf
9 августа 2021 в 05:51
0

!name.trim() — это условие будет истинным, если name — пустая строка. Если строка пустая, то делать ничего не нужно, поэтому просто return из функции. По сути, вы хотите выполнить свою функцию за пределами этого условия, только если строка не пуста.

Jonas Wilms
9 августа 2021 в 06:27
0

Как выглядит остальная часть функции? Знакомы ли вы с семантикой оператора return?

Ответы (4)

avatar
Wais Kamal
9 августа 2021 в 06:22
0

В javascript все значения "falsy" оцениваются как false. Все приведенные ниже примеры считаются "ложными":

.
  • false - ключевое слово false
  • 0 - число ноль
  • "" - пустая строка
  • null
  • undefined
  • NaN

Что делает trim(), так это то, что он удаляет конечные и начальные пробелы из строки. Таким образом, этот код просто означает «после удаления конечных и начальных пробелов из строки, если строка пуста, ничего не возвращать».

ProJin
9 августа 2021 в 06:30
0

Логическое ([]) = истина

Jonas Wilms
9 августа 2021 в 06:33
0

Также вы забыли null и undefined в этом списке...

avatar
Majid M.
9 августа 2021 в 06:06
0

На самом деле, когда мы используем return в этой ситуации, мы получили ожидаемый результат, и нам не нужно продолжать тело функции. Поясним на примере. Предположим, что мы хотим найти 75 из цикла с индексом и вернуть результат. Когда мы нашли результат, нам не нужно выполнять оставшуюся часть тела функции. В этом примере также вычисляется время между тем, когда вы не выполняете оставшееся тело функции, и когда вы выполняете оставшееся тело функции. Вы увидите, что это также влияет на время выполнения.

function testWithoutReturn() {
  let result = 0;
  let t1 =new Date();
  for (let i = 0; i < 100; i++) {
    if (i == 75) {
      result = 75
      console.log("result founded but I will continue the loop needles!")
    }
    console.log(i);
  }
  let t2 = new Date();
  getTimeDif(t1,t2)
}
function getTimeDif(t1,t2){
  var dif = t1.getTime() - t2.getTime();
  var sconds = dif / 1000;
  var result = Math.abs(sconds);;
  console.log(result)
}
testWithoutReturn()

function testWithReturn() {
      let result = 0;
      let t1 =new Date();
      for (let i = 0; i < 100; i++) {
        if (i == 75) {
          result = 75
          console.log("result founded and it doesn't need to continue loop")
          let t2 = new Date();
          getTimeDif(t1,t2)
          return;
        }
        console.log(i)
      }
    }
function getTimeDif(t1,t2){
  var dif = t1.getTime() - t2.getTime();
  var sconds = dif / 1000;
  var result = Math.abs(sconds);;
  console.log(result)
}
    testWithReturn()
avatar
Sinan Yaman
9 августа 2021 в 05:54
0

Мы возвращаемся только для того, чтобы прекратить выполнение функции:

Вот пример с возвратом:

const test = Array(100).fill(1)

const getFifty = (arr) => {
  let sum = 0
  for(let i = 0; i < 50; i++){
    sum += arr[i]
    if(sum >= 50){
     console.log("Sum is fifty at index" , i)
     return
    }
  }
  console.log("Sum is never fifty")
}

getFifty(test)

Вот пример без возврата:

const test = Array(100).fill(1)

const getFifty = (arr) => {
  let sum = 0
  for(let i = 0; i < 50; i++){
    sum += arr[i]
    if(sum >= 50){
     console.log("Sum is fifty at index" , i)
    }
  }
  console.log("Sum is never fifty")
}

getFifty(test)
avatar
Viet
9 августа 2021 в 05:50
1

Мы возвращаемся к нему, потому что нам не нужно запускать код после условия. Повышение производительности и чистый код

Jonas Wilms
9 августа 2021 в 06:25
0

"увеличить производительность" по сравнению с чем? Почему это "чистый код"?

Viet
9 августа 2021 в 06:27
0

1. we will haven't to run code after the conđition