Вернуть ИЛИ с тем же значением

Зачем кому-то это делать

function() { return(abc || abc || "") }

разве недостаточно просто return(abc || "")?

Формы c голосовым вводом в React с помощью Speechly
Формы c голосовым вводом в React с помощью Speechly
Пытались ли вы когда-нибудь заполнить веб-форму в области электронной коммерции, которая требует много кликов и выбора? Вас попросят заполнить дату,...
В чем разница между Promise и Observable?
В чем разница между Promise и Observable?
Разберитесь в этом вопросе, и вы значительно повысите уровень своей компетенции.
Сравнение структур данных: Массивы и объекты в Javascript
Сравнение структур данных: Массивы и объекты в Javascript
Итак, вы изучили основы JavaScript и хотите перейти к изучению структур данных. Мотивация для изучения/понимания Структур данных может быть разной,...
Создание собственной системы электронной коммерции на базе Keystone.js - настройка среды и базовые модели
Создание собственной системы электронной коммерции на базе Keystone.js - настройка среды и базовые модели
Прошлая статья была первой из цикла статей о создании системы электронной коммерции с использованием Keystone.js, и она была посвящена главным образом...
Приложение для отслеживания бюджета на React js для начинающих
Приложение для отслеживания бюджета на React js для начинающих
Обучение на практике - это проверенная тема для достижения успеха в любой области. Если вы знаете контекст фразы "Практика делает человека...
Стоит ли использовать React в 2022 году?
Стоит ли использовать React в 2022 году?
В 2022 году мы все слышим о трендах фронтенда (React, Vue), но мы не знаем, почему мы должны использовать эти фреймворки, когда их использовать, а...
0
0
24
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы правы, в любом хоть сколько-нибудь серьезном коде достаточно будет просто return abc || "".

Единственная ситуация, в которой return(abc || abc || "") может привести к другой логике, — это если вы находитесь внутри with или если abc является геттером в окне — и это может произойти только в том случае, если кто-то намеренно пишет запутанный код.

let count = 0;
Object.defineProperty(window, 'abc', { get: () => count++ });

const result = abc || "";
console.log(result);

let count = 0;
Object.defineProperty(window, 'abc', { get: () => count++ });

const result = abc || abc || "";
console.log(result);

мне потребовалось несколько секунд, чтобы понять, что в этом случае значение abc будет иметь другое значение каждый раз, когда оно будет оцениваться, потому что это не просто переменная, а было определено как свойство объекта окна с прикрепленной к нему функцией получения. Итак, когда пришло время оценить оператор abc || abc, первый abc возвращает 0, а второй abc возвращает 1, составляя выражение 0 || 1. Я добавил этот комментарий для дальнейшего разъяснения и чтобы поблагодарить вас за эту замечательную демонстрацию.

Diego De Vita 09.04.2022 19:21

Шутки в сторону!!! Теперь мы должны думать и об этом случае getter каждый раз, когда собираемся использовать logical train. :-) Кстати, хорошее напоминание. Это javascript.

Nalin Ranjan 09.04.2022 19:45

Другие вопросы по теме