JavaScript/JScript
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 を作ったサン・マイクロシステム(当時)は、業務提携していた(なお、サン・マイクロシステムは既にオラクルに買収されて消滅した)。
そのネットスケープの開発したツール。