Что, по-видимому, заставляет многих читателей Java беспокоиться о JS, это его «классный папа»; вам все равно, если вы курите горшок или пообщаетесь с друзьями до 2 утра. Без этой структуры невозможно проверить безопасность типа в «время компиляции» ... или это так?JS - могут ли ошибки уловить лог?
Конечно, у javascript есть типы, но он не сильно типизирован. Это, как говорится, человек читает следующий отрывок заметит, что это собирается бросить исключение во время выполнения:
function f(anArray) {
"use strict";
anArray.push("hi");
}
f(5); //runtime exception for sure
Мы можем видеть это как программисты, потому что, даже если типы не объявлены явно (например, INT с ;), мы можем собрать различные другие характеристики, чтобы вывести его тип (это число без кавычек). Похоже, что есть алгоритм (например, дерево решений), который может легко определить тип данного объекта.
Суть в том, что в динамически типизированном языке существуют типы, но их использование и преобразования неявные. Таким образом, мой вопрос заключается в следующем:
Допустимо ли, что литеры могли использовать неявные соглашения, чтобы определить, что такое тип объекта, и предупредить о возможной ошибке выполнения во время «времени»?
Благодарим вас заблаговременно.
Существуют теги typecheckers для javascript, которые могут поймать эту ошибку, да, но они являются typecheckers not linters. – Bergi
Как вы можете узнать, нет ли метода 'Number.prototype.push' во время выполнения? :-P – Bergi
Ха-ха, звучит как ответ на меня. Наверное, меня смутило семантическое значение линта. –