Каковы плюсы свободной печати?
Говорят, что JavaScript - это "свободно типизированный" язык. Это связано с тем, что среда выполнения позволяет выполнять операции над операндами разных типов (посредством приведения):
var number = 6;
var bool = true;
var result = number + bool; //result is 7
Исходя из в основном статически типизированного, строго типизированного фона, мне трудно рассуждать о преимуществах такого подхода. Конечно, это может привести к довольно лаконичному синтаксису, но также может вызвать кошмар при попытке отследить ошибки. Итак, помимо краткости, каковы некоторые из преимуществ свободной типизации и неявных преобразований типов?
1 ответ
Свободно типизированные языки имеют ряд отличий, которые можно принять за преимущества:
- Там нет необходимости
interfaces
, Пока объект имеет имя нужного вам метода, вызывайте этот метод. Неиспользование интерфейсов может упростить кодирование и уменьшить размер кода. - Нет необходимости в дженериках по очень похожим причинам.
- Перегрузки функции "по типу" обрабатываются проще. Если функции требуется строковый параметр, просто приведите входящее значение к строке. Если требуется проверка типа, ее можно добавить туда.
- У нас нет или не нужно классов. [Почти] все является объектом, который значительно облегчает передачу значений. Нет необходимости в авто-боксе, не нужно приводить значения выходящие.
- Объекты легко расширяются, не нарушая код. Вы можете создать массив, а затем заменить заменить
indexOf
метод использовать один использует бинарный поиск. Конечный результат меньше, и ИМХО, более чистый код.