Когда вы не уверены, что полностью понимаете весь стиль кодирования JavaScript в ES6, и вдруг натыкаетесь на следующий фрагмент кода.

var word = ["Привет", "Мир"];

word.map((word) =› word && «Привет»);

console.log(слово);

Моя реакция…

Итак, что же я заметил!

Значение массива слов изменилось с ["Hello", "World"] на ["Hi", "Hi"], но как! что делает эта строка кода ?(слово) =› слово && «Привет»

Если вы знакомы со стрелочной функцией, вам не потребуется много времени, чтобы понять, что массив с именем word содержит строки. Этот массив передается в качестве аргумента стрелочной функции. Обратитесь к https://www.tutorialspoint.com/es6/es6_functions.htm, чтобы понять все функции Javascript. Но как заменяется значение массива и какова функция оператора &&.

Чтобы понять это, вам нужно поиграть с кодом;

Попробуйте запустить тот же код, но на этот раз поменяйте порядок «Привет» и слова.

Примерно так — word.map((word) =› «Привет» && word);

Вы увидите, что на этот раз слово «массив» не заменено на «Привет».

Вот ПОЧЕМУ……….!

Когда встречается условие &&, он ищет значение первого условного параметра, затем проверяет второй условный параметр и так далее до последнего параметра и возвращает последний параметр.

Теперь давайте попробуем добавить еще одно условие и параметр

word.map((word) =› «Привет» && word && «мир»);

Можете ли вы угадать выход — да! он всегда будет возвращать последний параметр условия and.

Но не дайте себя обмануть, помните об основных функциях оператора AND. Если какой-либо переданный параметр является ложным, оператор немедленно вернет ложь, без дальнейшего просмотра списка.

Попробуйте word.map((word) =› «Привет» && false && «мир»);

Весело прямо!

Теперь замените оператор И на ИЛИ.

Можете ли вы угадать, что произойдет, и причину этого;

Итак, word.map((word) =› word || «Привет»);

Значение массива не изменится. Поскольку это оператор ИЛИ, будет возвращено первое истинное значение.

Измените значение массива слов на var word = ["Hello", false];

Перебрать массив word.map((word) =› word || «world») ; и посмотрите, что произойдет, вы увидите, что значение массива равно ["Hello", "World"]

Когда вы новичок в ES6, такие вещи могут немного сбивать с толку.

Вы можете смешивать операторов и получать больше удовольствия!

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

Спасибо!