2012-06-06 4 views
3

Когда я изучил Perl и Python, моя «среда разработки» состояла из vim и оболочки. Я бы просто написал программу в vim, а затем выполнил ее из командной строки. Я знаю, что двигатель spidermonkey доступен как автономный интерпретатор, но я не уверен, насколько он практичен.Как легко выполнить файл JavaScript?

«Интуитивным» способом с JS было бы включение сценария в веб-страницу и просмотр его в разных браузерах, но это кажется громоздким. Я видел несколько рекомендаций для Firebug, но я не мог полностью понять это.

Я знаю, что существует несколько JS-ориентированных плагинов для vim, но опять же я не знаю, насколько практичны они.

Я в основном хочу написать сценарий и быстро проверить его на синтаксис и вывод. Мне также интересно узнать, как фактические разработчики JS приступают к тестированию своего кода.

+0

Да, такие двигатели CLI существуют. Что вы пробовали? Кроме того, какая поддержка DOM, если таковая имеется, необходима? Если DOM требуется от CLI, найдите «безгласный javascript». Для проверки * просто * синтаксиса может быть достаточно jslint или подобное. –

+0

Я тестирую в браузере, всегда :) Ну, Node.js - это то, что я использую для очень быстрых вещей. (Я также использую его как калькулятор.) – Ryan

ответ

1

Я использую Node.js много, так что мой ответ будет смещен, но ...

  1. Для изучения языка, Node.js дает вам простой в использовании (например, Python, Ruby , et al) REPL, просто набрав в командной строке node.
  2. Проверка вашего сайта красиво выполнена с помощью Zombie, браузера без браузера, реализованного в Node.js. Если ваш Javascript синтаксически ошибочен, как только вы попытаетесь загрузить страницу, вы получите сообщение об ошибке. Если ваш Javascript является семантически неправильным (неправильная логика), тогда тесты, которые вы пишете, чтобы проверить правильное поведение кода, не удастся.
  3. В конце концов вы в имеете для тестирования в Firefox, IE и т. Д., Но не в Chrome, потому что оба они используют один и тот же движок V8 (конечно, вы можете сделать беглый взгляд). IE, как вы, вероятно, знаете, имеет наибольшее количество отклонений от других браузеров, не реализуя функции или не давая им другое имя. Удивительно, что Firefox также довольно девиантный, но не в отсутствующих функциях, а в том, что у него есть много дополнительных функций на языке Javascript, которых нет в другом браузере (они были предложены как часть стандарта ECMAScript, но были отклонены), поэтому на самом деле это идея хорошая идея не начинать оттуда, если вы хотите, чтобы ваш код работал на каждом интерпретаторе.

С Node.js вы также будете иметь один из быстрых серверных интерпретаторов в вашей команде (быстрее, чем Python и Ruby, примерно равной Lua, а иногда до уровня Java, и как-то V8 имеет самый быстрый движок RegEx в мире), а затем код на стороне сервера соответствует коду на стороне клиента, что значительно упрощает работу с такими уровнями, как RPC.

Смежные вопросы