« おたまはん | メイン | C/C++ プログラマのための JavaScript 入門: スクリプト言語 »

C/C++ プログラマのための JavaScript 入門: プロローグ

私は C/C++ あるいはアセンブラといった低級言語を主に使う職業プログラマですが, もちろん仕事や趣味で他の言語を使うこともあります。 特に「スクリプト言語」と呼ばれる高級言語は手軽に使えるため重宝しますが, メインで使っているわけではないので, しばらく使わないと忘れてしまいます。 JavaScript も同様で使わないとすぐに忘れます。 そこでこれから何回かに分けて自分自身への覚え書きを兼ねて JavaScript について書いてみます。 といっても JavaScript の言語マニュアルを書いてもしょうがないので, C/C++ プログラマから見て JavaScript を取り扱う際に注意すべき点などを主に書いていきたいと思います。

あらかじめ予防線を張っておきますが, 私は言語系のプログラマではないですし特にスクリプト言語に関してはど素人同然です。 もし JavaScript に関する資料を探しているのなら, ここではなく, 以下の文献を参照されることをお薦めします。

JavaScript
David Flanagan著 / 村上 列監訳 / 安藤 進訳
オライリー・ジャパン (2000.12)
通常2-3日以内に発送します。

このシリーズではこれらの文献を参照しながら進めていきます。

なお, JavaScript を習うにあたっていちいち HTML ページを作るのは面倒だと感じる方もいるかもしれません。 実は私がそうです。 そこでこのシリーズでは原則として「Windows Script Host (WSH)」を使っていくことにします。 WSH は Windows 用のスクリプト・エンジンを駆動するホストプログラムです。 WSH で使用可能なスクリプト・エンジンならどんな言語でも使用可能です。 既定では JScript (JavaScript の Microsoft バージョン)と VBScript が使用可能ですが, 他にも Perl, REXX, Python などでも利用可能なスクリプト・エンジンがあるようです。

まず hello.js というファイルを作成して例のお約束のコードを書いてみましょう。

WScript.Echo("Hello World!");

WSH を起動するには CScript コマンドを起動します。

C:\> cscript hello.js
Microsoft (R) Windows Script Host Version 5.6
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.

Hello World!

C:\>

HTML 上の JavaScript コードであれば document.write メソッドを使うところですが, WSH には document オブジェクトはないため(無理やり実行しようとしても「実行時エラー」になります) WScript オブジェクトを使っています。 ちなみに CScript ではなく WScript コマンドを使う(または Explorer 上で hello.js をダブルクリックする)とウィンドウがポップアップします。 WSH は非常に強力なので(レジストリの書き換えもできます), お使いの環境によってはセキュリティ上の理由から無効になっている場合もあります。 あしからずご了承ください。

もうひとつツールを紹介しましょう。 JavaScript では冗長な記述が許されていますが, それ故に思わぬところにバグを混入させてしまうことがあります。 そこで構文チェックのために JSLint を利用することをお薦めします。

目次:

  1. プロローグ
  2. スクリプト言語
  3. データ型
  4. 型変換
  5. new 演算子とインスタンス
  6. prototype と継承
  7. 関数とスコープ
  8. 連想配列と配列

Tags: [Javascript]
2006-03-20T22:33:58+09:00 Spiegel (licensed) [Programming] このエントリーを含むはてなブックマーク

トラックバック

現在 spam 対策のため Trackback Auto Discovery を無効にしています。 あしからずご了承ください。

トラックバック URL:

コメント

ツッコミをいただきました。
http://cgi14.plala.or.jp/imaishi/changelog/2006-03.html#2006-03-24-1

>実際には「実行速度の速い書き方」というのは存在する。
はい,もちろん「速くなる書き方」というのは存在します。このようなテクニックはどんな言語でも存在するものです。ただ,このシリーズは JavaScript のハックが目的ではありません。私が書きたいのは C/C++ のようなインストラクション指向のプログラミングと(今回は JavaScript を例にしてますが)スクリプト言語のような論理指向のプログラミングとの方向性の違いです。言語仕様や手技の紹介以前に(そういうのは他のサイトに優れた記事がありますしね)そういう基本的なことを押さえてなければ(主に私が)ダメだろうという趣旨で書いています。
ですから「動的な型付けを行なうので、インストラクションを意識しない書き方が出来る」とは敢えて書かないのです。

>「配列」とあるのは嘘で、オブジェクトと配列は区別できない=同じ。
確かにオブジェクトの中身は連想配列なので配列と何が違うんだと言われれば「同じ」と言うしかありません。が,それでは今後書く予定の「オブジェクト」の説明に続かなくなってしまいます。ので,ここは生暖かく見守ってください。

>「比較対象が数値の場合には数値での比較を行なう」が適切では?
これはちょっと説明不足でしたね。直しておきます。

投稿者 Spiegel Author Profile Page : 2006年3月24日 21:29