Когда вы не уверены, что полностью понимаете весь стиль кодирования 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, такие вещи могут немного сбивать с толку.
Вы можете смешивать операторов и получать больше удовольствия!
Пожалуйста, оставляйте комментарии и задавайте любые вопросы, я постараюсь ответить.
Спасибо!