先週から JavaScript の勉強をしています。
JavaScript は、オブジェクト指向機能を備えたインタプリタ型のプログラミング言語です。一般的に JavaScript と言うと、Web ブラウザに組み込まれていて実行されるものとして使われています。厳密には、言語としての汎用機能をコア JavaScript、コア言語を拡張して Web ブラウザ上で動作するものをクライアントサイド JavaScript と呼ぶそうです。
勉強していて、こういうコードはどう動くのかなと試してみたい欲求は度々出てきます。そんな時にコードを書いて、わざわざブラウザをリロードして動作確認するのは面倒ですよね。そこで JavaScript のインタラクティブシェルとして SpiderMonkey をインストールして、ちょっとしたコードを実行します。SpiderMonkey は、Fedora では js というパッケージ名になるので、SpiderMonkey で検索してもヒットしません。
ここでは CentOS に yum で js パッケージをインストールします。
# yum --enablerepo=epel -y install js # rpm -qi js Name : js Relocations: (not relocatable) Version : 1.70 Vendor: Fedora Project <http://bugzilla.redhat.com/bugzilla> Release : 3.el5 Build Date: 2009年01月28日 09時01分06秒 Install Date: 2009年08月09日 15時02分54秒 Build Host: xenbuilder2.fedora.redhat.com Group : Development/Languages Source RPM: js-1.70-3.el5.src.rpm Size : 887408 License: GPLv2+ Signature : DSA/SHA1, 2009年01月30日 04時52分44秒, Key ID 119cc036217521f6 Packager : Fedora Project <http://bugzilla.redhat.com/bugzilla> URL : http://www.mozilla.org/js/ Summary : JavaScript interpreter and libraries Description : JavaScript is the Netscape-developed object scripting languages. This package has been created for purposes of Sablotron and is suitable for embedding in applications.
※ Fedora EPEL の設定方法は以下の冒頭を参照してください
(第1回)Zope/Plone開発勉強会 - forest book
ホスト上で実行してみます。
JavaScript にも同値演算子(===)があるのを初めて知りました。
js> var v1 = 123; js> var v2 = "123"; js> if (v1 == v2) print("true"); else print("false"); true js> if (v1 === v2) print("true"); else print("false"); false
JavaScript のオブジェクトはプロパティへのアクセスに対して、識別子とドット演算子(.)を用いる方法と、連想配列として文字列を用いる方法の2種類があります。配列表記を用いることで、柔軟性の高いプログラムを書くことができます。あらかじめ分かっているプロパティは識別子としてアクセスして、動的に追加したいプロパティやプログラムで操作したいプロパティを配列表記でアクセスするのかなと思います。
# js js> var obj = {x:1, y:2}; js> obj [object Object] js> obj.x 1 js> obj["x"] 1 js> var range = [4,5,6]; 4,5,6 js> for (i in range) { obj["attr" + i] = range[i]; } 6 js> print(obj["attr0"]); 4 js> print(obj["attr1"]); 5 js> print(obj.attr2); 6
自分の頭の中にイメージしたことを「ちょっと」実行して動作を確認してみるというのは楽しいです。
リファレンス:
wikipedia:SpiderMonkey
SpiderMonkey | MDN
SpiderMonkey で JavaScript のインタラクティブシェル - bkブログ

- 作者: David Flanagan,村上列
- 出版社/メーカー: オライリー・ジャパン
- 発売日: 2007/08/14
- メディア: 大型本
- 購入: 52人 クリック: 1,011回
- この商品を含むブログ (270件) を見る