Help us understand the problem. What is going on with this article?

OSXのターミナルでJavascriptを動かす

More than 5 years have passed since last update.

はじめに

ターミナルからJavascriptを動かしたかった。
先生に訊いてみると、MacにはJSCというインタプリタが最初からついている、とのこと。
それ使おう。
ということで、JSCのヘルプを見てみる。

mac1:~ user$ jsc --help
-bash: jsc: command not found

初期状態ではパスが通ってないので使えないようだ。

1. MacについてるJSCのパスを設定する

まずはパスを通す。
先生によると、JSCの場所はここらしい。

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

なるほど。
覗いてみると、たしかにあった。
ということで、ターミナルで以下を実行。

mac1:~ user$ cd /usr/local/bin
mac1:bin user$ ln -s /System/Library/Frameworks/JavaScriptCore.framework/Versions/A/Resources/jsc ./

jsc --helpをもう一回やって、通ったかどうか確認

mac1:~ user$ jsc --help
Usage: jsc [options] [files] [-- arguments]
  -d         Dumps bytecode (debug builds only)
  -e         Evaluate argument as script code
  -f         Specifies a source file (deprecated)
  -h|--help  Prints this help message
  -i         Enables interactive mode (default if no files are specified)
  -s         Installs signal handlers that exit on a crash (Unix platforms only)
  -p <file>  Outputs profiling data to a file
  -x         Output exit code before terminating

  --options                  Dumps all JSC VM options and exits
  --dumpOptions              Dumps all JSC VM options before continuing
  --<jsc VM option>=<value>  Sets the specified JSC VM option

うまくいった。

2. 対話型インタフェースで実行

ターミナルでjscをコマンドしてみる。

mac1:~ user$ jsc

すると、こうなる。


mac1:~ user$ jsc
>>> function double(a) {
... var b = a * 2;
... return b;
... }
undefined
>>> double (1024)
2048

おお、できた。

3. jsファイルを実行

helloworld.js
(function(){
  print('hello, world!');
}());

こんな感じのファイルを作って保存。
ターミナルからjscで走らせてみると...

mac1:~ user$ jsc helloworld.js
hello, world!

動いた。
よかったよかった。
おわり。

参考URL

macで、ターミナルからJavaScriptスクリプトファイルを実行する - ytyng.com
MacのターミナルでJSを走らせる。- modifiedの日記

wnoooo
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした