Недавно я понял, что, когда я использую функцию для цикла над массивом и возвращаю совпадение, на самом деле мне не нужно возвращать false/null в конце.Javascript - Опускание возврата False
Например, если у меня есть:
* ред пример. Исходный пример был из функции, которую я пытался упростить, но забыл изменить имя/контекст. Извините за путаницу. Вот лучший пример подгонки названия моего вопроса:
var hasKey = hasKeyMatch(key);
function hasKeyMatch(key) {
for (var i = 0; i < array.length) {
if (array[i].key === key) {
return true;
}
}
};
Я на самом деле не нужен возврат ложного, так как если нет возврата ключа, hasKey будет неопределенным. Поэтому я все еще могу использовать hasKey как логическое.
Но считается ли это хорошим стилем? Я понимаю, что «резервное» возвращение является необходимостью в таких языках, как Java, и поэтому некоторые люди привносят эту привычку в JS. Но я думаю, что сведение к минимуму ненужных результатов было бы идеальным, хотя я и не подозреваю о фактической стоимости возвращения.
И я, когда я смотрю на ответ на следующий вопрос, я смущен тем, почему он решает вернуть переменную, которая уже нажата на нужный массив. Я предполагаю, что его возвращение преднамеренно, и он не предназначен для хранения возвращаемой переменной где угодно. Есть ли преимущества (например, сбор мусора) возврата переменной в конце функции?
drawImage using toDataURL of an html5 canvas
Это вопрос мнения, но я, например, тонкий с подразумеваемым 'undefined' возвращаемого значением для функций, которые возвращают подобранное значение, если найдено. Хотя имя вашей функции 'hasKeyMatch()' означает, что return будет либо «true», либо «false», тогда как вы возвращаете то же значение, которое было передано функции. Поэтому в этом случае для меня было бы более разумным, если бы вы вернули индекс в массив, где было найдено совпадение, и '-1', если он не найден. (Это то, что делает '' .indexOf() '] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf).) – nnnnnn
У меня была бы функция этого имени верните 'true'или' false'. Во всяком случае, не возвращайте ключ в результате - что, если вы ищете ключ, который будет оценивать что-то ложное? Функция найдет его, но вернет что-то к отрицанию. – npup
Я предпочитаю возвращать значения * boolean * values (true/false) vs. * truelean * (правдивые/не правдивые), если только последнее не имеет смысла (т. Е. Значения, возвращаемые сами по себе, используются для чего-то, кроме их правдивого/флексивного характера. Возвращаемое значение * * ожидается, что оно будет использоваться для других целей (и не изменит значение правды/ложности), а затем вернет его. – user2246674