How do you run JavaScript script through the Terminal?

How do you run JavaScript script through the Terminal?

For instance, if you were to run a Python script you would type python filename.py or if you wanted to run a C program make filename then ./ filename. How do you do this with .js files?

Solutions/Answers:

Solution 1:

You would need a JavaScript engine (such as Mozilla’s Rhino) in order to evaluate the script – exactly as you do for Python, though the latter ships with the standard distribution.

If you have Rhino (or alternative) installed and on your path, then running JS can indeed be as simple as

> rhino filename.js

It’s worth noting though that while JavaScript is simply a language in its own right, a lot of particular scripts assume that they’ll be executing in a browser-like environment – and so try to access global variables such as location.href, and create output by appending DOM objects rather than calling print.

If you’ve got hold of a script which was written for a web page, you may need to wrap or modify it somewhat to allow it to accept arguments from stdin and write to stdout. (I believe Rhino has a mode to emulate standard browser global vars which helps a lot, though I can’t find the docs for this now.)

Related:  Slick Carousel Uncaught TypeError: $(…).slick is not a function

Solution 2:

Another answer would be the NodeJS!

Node.js is a platform built on Chrome’s JavaScript runtime for easily building fast, scalable network applications. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices.

Using terminal you will be able to start it using node command.

$ node
> 2 + 4
6
> 

Note: If you want to exit just type

Solution 3:

If you have a Mac you can get jsc a javascript console in OS X (Terminal) by typing

/System/Library/Frameworks/JavaScriptCore.framework/Versions/Current/Resources/jsc

in Terminal.app.

You could also run one of your .js script by adding its name as an argument for jsc, like this:

jsc your_awesome_script_name.js

Notice: I use console.log() during development but jsc needs the debug() function instead.

On Ubuntu you have some nice ECMAScript shells at your disposal. Between them it’s worth to mention SpiderMonkey. You can add It by sudo apt-get install spidermonkey

On Windows as other people said you can rely on cscript and wscript directly built on the OS.

Related:  How do I get console input in javascript?

I would add also another 🙂 way of thinking to the problem, if you have time and like to learn new things i’d like to mention coffee-script that has its own compiler/console and gives you super-correct Javascript out. You can try it also on your browser (link “try coffeescript”).

Solution 4:

Use node.js for that, here is example how to install node by using brew on mac:

brew update && install node

Then run your program by typing node filename.js, and you can use console.log() for output.

Solution 5:

It is crude, but you can open up the Javascript console in Chrome (Ctrl+Shift+J) and paste the text contents of the *.js file and hit Enter.

Solution 6:

If your using windows.

  1. Set up node.js in your system and open up node.js terminal
  2. Open the node.js command prompt, navigate to your directory, where you have saved your js file.
  3. and execute your js file by giving a command node yourfilename.js

If you want to execute your javascript code and see the result in the next line, use the codecademy website.

Related:  node.js async.series is that how it is supposed to work?