Проходя технические собеседования, встречаешь много программистов с большим профессиональным опытом. Разговоры с ними могут многое рассказать о том, как они работают в реальном мире программирования. В последнем техническом интервью, которое у меня было, интервьюер и я поговорили об использовании условных операторов if/else по сравнению с тернарными операторами. Поскольку они предпочитают использовать операторы if/else, так как читаемость лучше для других программистов, чтобы они могли читать и понимать написанный код. Меня учили, что чем меньше кода вы пишете, тем лучше. Я думаю, это просто зависит от того, кого вы спросите. Хотя я вижу, как вложенные тернарные условные операторы могут запутаться, но опять же, это зависит только от того, кто читает код.
Я взял на себя задачу развить универсальность в использовании обоих методов. Я считаю, что развитие обоих навыков поможет мне лучше понять синтаксис при написании условных выражений.
Я пользуюсь веб-сайтом edabit.com, где есть тысячи заданий разного уровня. Мой план сейчас состоит в том, чтобы переписать каждый оператор if/else в тернарный оператор, как только я пройду испытание.
Первая задача состоит в том, чтобы выяснить, является ли слово множественным числом или нет; возвращая истину или ложь. Сначала я выполнил задачу с помощью метода if/else:
function isPlural(word) { if (word.endsWith('s')) { return true } else return false }
Это можно переписать на:
function isPlural(word) { return word.endsWith('s') ? true : false }
Это, на мой взгляд, более чистое и обучающее, а читабельность также удобна для пользователя.
Следующая задача — найти тип невычисленного операнда в пятом аргументе функции, если он существует. Напишем снова с помощью метода if/else:
function fifth(...args) { if (args.length < 5) { return 'Not enough arguments' } return typeof args[4] }
Теперь с тройным:
function fifth(...args) { return args.length < 5 ? 'Not enough arguments' : typeof args[4] }
Честно говоря, я считаю, что тернарный оператор — лучший способ написать простые операторы if/else, хотя работа с вложенными тернарными операторами может быть немного запутанной, и я вижу, как некоторые люди предпочитают if/else. Развитие письма обоими методами поможет мне адаптироваться к любой среде, в которой есть предпочтительный выбор.