Есть ли какие-либо инструменты статического анализа JavaScript? [закрытый]

По сути, вы можете использовать функцию window.onload для запуска некоторого JavaScript, чтобы динамически добавлять html в ваше тело и показывать «выпадающий список».

Но поскольку доступ к html2 можно получить другими способами (например, с помощью закладки или копирования / вставки в браузер), а не только через гиперссылку внутри html1, вы также можете добавить некоторую строку запроса или фрагмент в html2, когда он загружается из html1. (добавьте его в href тега a). Внутри функции загрузки вы можете проверить, существует ли то же самое, и решить, показывать или нет раскрывающийся список.

Я не буду давать код, так как функциональность в этом вопросе неопределенно определена. Но это должно помочь вам решить это самостоятельно.

108
задан mido 6 July 2015 в 10:46
поделиться

5 ответов

Я соглашаюсь, что JSLint является лучшим местом для запуска. Обратите внимание, что Линт JavaScript отличен от JSLint. Я также предложил бы проверить JSure, который в моем ограниченном тестировании добился большего успеха, чем любой из них, хотя с некоторыми грубыми краями в реализации — версия Intel Mac, разрушенная на запуске для меня, хотя версия PowerPC хорошо работала даже на Intel и версии Linux, хорошо работала также. (Разработчик, Berke Durak, сказал, что возвратится ко мне, когда это было зафиксировано, но я не получил известие от него.)

Не ожидайте столько от статического анализа JavaScript, сколько Вы добираетесь от хорошего средства проверки C. Как Durak сказал мне, “любой нетривиальный анализ является очень трудным из-за динамического характера JavaScript”.

(Другой, еще более неясная ошибка только для Mac, на этот раз с виджетом JSLINT Konfabulator: Перетаскивание значка документа BBEdit на виджет перемещает документ мусору. Разработчик, Douglas Crockford, не попробовал виджет на Mac.)

10 августа 2009: Сегодня на Симпозиуме Статического анализа, Simon Holm Jensen сделал доклад на TAJS: Введите Анализатор для JavaScript, записанного с Anders Møller и Peter Thiemann. Бумага не упоминает вышеупомянутые инструменты, но Jensen сказал мне, что посмотрел на некоторых из них и не был впечатлен. Код для TAJS должен быть доступным когда-то этим летом.

49
ответ дан Andrew Marshall 24 November 2019 в 03:32
поделиться

Мне нравится Jslint за этот вид вещи...

3
ответ дан Ishmael 24 November 2019 в 03:32
поделиться

JS-компилятор Google "Closure" выдает настраиваемые предупреждения и ошибки во время компиляции. Он определенно находит переменные и методы с ошибками, а также ошибки арности. Если вы хотите написать JsDoc в стиле Closure, он также может многое сделать с информацией о типе.

Инструмент YUI «Компрессор» тоже может выдавать предупреждения, но еще не пробовал.

Мне не очень повезло с Aptana IDE, построенной на Eclipse, но другим она нравится. См. Обсуждение JS IDE при переполнении стека.

IntelliJ IDE, которая не является бесплатной в прошлый раз, имеет чертовски отличную поддержку JS. Он будет обнаруживать и выделять ошибочно написанные переменные и методы по мере ввода и т. Д. У него тоже есть автозаполнение.

20
ответ дан 24 November 2019 в 03:32
поделиться

Наш SD ECMAScript CloneDR - это инструмент для поиска точных и близких копий дублированного кода в больших базах исходного кода JavaScript.

Он использует синтаксис языка для определения, поэтому он найдет клоны, несмотря на изменения формата, вставленные/удаленные комментарии, переименованные переменные и даже некоторые вставленные/удаленные утверждения.

На сайте есть пример работы CloneDR на библиотеке Closure от Google.

1
ответ дан 24 November 2019 в 03:32
поделиться

Полное раскрытие, я за этим: http://www.toptensoftware.com/minime , который выполняет минификацию, обфускацию и разумный набор проверок стиля линта.

0
ответ дан 24 November 2019 в 03:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: