JavaScript/JScript

出典: フリー教科書『ウィキブックス(Wikibooks)』


JScriptの文法はECMAScript 3 (1999)当時のものです。

この本で紹介している多くの機能は正しく動作しません。

ファイル入出力[編集]

ファイル書き込みをする場合、Webブラウザからは不可能である。

この場合、WindowsならコマンドプロンプトあるいはWindows Terminalを使い、Windows標準で初期状態から付属している JScript(ジェイ・スクリプト)などを使うことになる(インストールなしで使える)。

起動コマンドは、コマンドプロンプト画面にて、

C:\Users\ユーザー名>WScript kakikomi.js

のようになる。

またコードはユーザープロファイルに置く(デスクトップ・フォルダーだと作業の手間が増える)。

コード例
//  ファイルシステム関連オブジェクトの作成
var fso = new ActiveXObject("Scripting.FileSystemObject");

//  ファイルを開く
var fileTarget = fso.OpenTextFile("FileTest.txt", 2);

// ファイルに文字列を書き込む
fileTarget.WriteLine( "12345" );

//  ファイルを閉じる
fileTarget.Close();

WScript.Echo( "終了しました" );


解説

OpenTextFile("ファイル名", 開き方のモード);


開き方のモードについては、「1」だと読み込みモード、「2」だと上書きモード、「8」だと追加書き込みモードである。

追加書き込みは、改行して書き込まれる(C言語の追加書き込みと同じ)。


※ 間借り: Windows以外のJavaScript実行環境[編集]

node.js や rhino など、JScript以外のJavaScript 実行環境の解説を、このページでしばらく間借りする。

書店では、サーバー関連の本でこれらのツールの説明があるが、しかしサーバーが無くても、一般のパソコンでも、これらのツールの使用は可能である。

node.js[編集]

オープンソースである。

インストール方法[編集]

Linuxの場合

Fedora なら

sudo dnf install nodejs

で入る。


Windowsの場合

Windows の場合、公式サイトからインストーラーをダウンロードしてきて実行すればインストールできる。

しかし、これだけだと 環境変数が通ってないので、インストーラーを再度立ち上げ、「Add to PATH」みたいな項目があるのでクリックすると、サブメニューで「will be installed on local hard drive」をクリックしたあとに、ウィンドウ下の「Next」を押することで、パスを自動的に通せる。

Windowsでの使用は、コマンド端末で使用が可能である。

たとえば

Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation.  All rights reserved.

C:\Users\ユーザー名>node -v
v12.16.2

C:\Users\ユーザー名>

コード例など[編集]

コード例

// ファイル機能の呼出は、こう書くと決まっている。
const fs = require('fs')

// 単なる文字列変数の定義
var textTest = "ザ・書き込みテスト\n" ;

// ファイルの追加書き込み
fs.appendFileSync("kakikomi.txt" , textTest );
起動の方法

どのOSでもコマンド端末にて

node ソースコードのファイル名

で、作成したJavaScriptファイルを起動できる。

なお、htmlファイルは起動できない。(もちろん、HTMLタグなども認識しないでエラーになる。)

Windowsの場合、環境変数(Path)は初期設定ではパス先がユーザープロファイルになるので、ソースコードの置き場所もユーザープロファイルにしておくのがラクである。

結果

ファイル「kakikomi.txt」が作成されているはず。

そのファイル中に、 「ザ・書き込みテスト」と書いてあるはず。

解説

var textTest = "ザ・書き込みテスト\n" ; 末尾の\n は改行のためのエスケープシーケンス(標準のjavascriptのエスケープシーケンスと使い方は同じ)。この\nがないと、次回のファイル実行以降、文字列が改行されずに、どんどん長くなってしまい、

ザ・書き込みテストザ・書き込みテストザ・書き込みテスト

となってしまう。

エスケープシーケンスがあるので、これを3回実行しても

ザ・書き込みテスト
ザ・書き込みテスト
ザ・書き込みテスト

とできる。


Windowsでの 文字化け の対処法

node.js は対応している文字コードが UTF-8 なので、ソースコードが別の文字コードだと、文字化けします。伝統的な古い Windows の標準的な文字コードは SHIFT-JIS という別の文字コードですので、このままだと文字化けします。

文字コードの変更はテキストエディタだけで、簡単に可能です。ソースコードをテキストエディタで開き、「名前をつけて保存」を押すと、保存時の文字コードを選択する項目欄が良く見るとウィンドウのどこかにあるので、そこで UTF-8 を保存後の文字コードとして選べば、Windowsがそのソースコードを自動で UTF-8 のものに変換してくれます。


備考

console.log が node.js でも利用可能である。

Rhino[編集]

オープンソースである。

備考

console.logは Rhino では使用不可能。(×)

代わりに print が Rhino で使用できる。(◯)

Rhino は Javaを流用している。そのため、JAVAのAPIを流用している。

しかし、Rhino の print 関数は、Javaの System.out.print 関数とは意味が違う。

Rhino の print 関数は、使用時に文末に改行が自動的に挿入される。しかし、Javaの System.out.print 関数では、文末に改行が挿入されない。

Javaでも System.out.println 関数なら、文末に自動的に改行が挿入されるが、しかし Rhino の println 関数 は無い。


なお1990年代後半、JavaScript を作ったネットスケープ(いまのMozillaの前身の企業) と Java を作ったサン・マイクロシステム(当時)は、業務提携していた(なお、サン・マイクロシステムは既にオラクルに買収されて消滅した)。

そのネットスケープの開発したツール。

SpiderMonkey[編集]

KJS[編集]