表示調整
閉じる
挿絵表示切替ボタン
▼配色
▼行間
▼文字サイズ
▼メニューバー
×閉じる

ブックマークに追加しました

設定
0/400
設定を保存しました
エラーが発生しました
※文字以内
ブックマークを解除しました。

エラーが発生しました。

エラーの原因がわからない場合はヘルプセンターをご確認ください。

ブックマーク機能を使うにはログインしてください。
異世界の魔法はJavaScriptで起動する  作者: あきらメル
第2章 入門編
9/30

入門編『構文』

独自オリジナル術式スクリプトを組むのって大変?」


エイダの疑問に、魔導書は答える。


「まぁ大変と言えば大変かな?実際、森の中で火を出すの苦労したし。主に計算が……」


エイダは思い出したのか、目をキラキラさせて興奮気味に語る。


「歩いても小さな火がピタッと頭の上で燃え続けるなんて、本当に凄かった。あんな魔法初めて見た」


「エイダの為だけに組んだ術式スクリプトだからな」


魔導書は少し照れ気味に答えた。


「わたしも出来るようになるかな?」


憧れる様にエイダは呟いた。


「そうだな、簡単なjavascriptを組んでみるか?」


「えっ、うん、やる」


エイダは即答した。


「ちょっと待ってて」


ページの上下に二つの四角型の領域エリアが現れ、大きさが変わったり、文字が現れたり、消えたりする。1分もしない内に準備が整った様だ。


「下の入力領域(エリア)術式スクリプトを書くと、上の出力領域(エリア)に表示するようにした。それでは始めよう」


術式スクリプト入力領域(エリア)に文字が表示される。


<script>

</script>


山括弧やまかっこの中にscriptって書かれてる」


「これはタグと言って、<script>は術式スクリプトの始まり、</script>は術式スクリプトの終わりを意味する。この二つのタグの間に書かれるのが実行される術式スクリプトになる。例えば、こんな感じ」


<script>

alert("ボクはわるい魔導書じゃないよ");

</script>


「ボクはわるい魔導書じゃないよ」と文章メッセージが四角のボックスと共にページに表示された。


挿絵(By みてみん)


「これがjavascriptなの?」


「そう。ページに警告文アラートを表示するだけの簡単な命令文コマンド警告文アラートは『閉じる』ボタンを押すと消える」


「『閉じる』ボタン?これかな?」


エイダは『閉じる』の文字を触ると、警告文アラートのは消えた。しかしエイダは少し不満そうだ。


「けどこれ、全然魔法じゃないよ?」


「確かに魔法ではない。しかしjavascriptは元々この様に魔導書ブラウザのページを『動的に』表現する為に作られた言語なんだ」


「動的?」


「文字に触ると色が変わったり、ページが新しくなったり、新しい文章が現れたり。それがなぜか、この世界(ここ)では魔法を制御するのに使われている」


「何で?」


「さあ?この世界(ここ)を作った神様が面倒臭がり屋で、別の世界(遠い所)の人の技術を拝借したとか」


魔導書は嫌々そうな声で答えた。こほんと咳払いをして気を取り直し、授業を再開する。


「さて、これと同じように『へんじがない、ただの魔導書のようだ』と警告文アラートを表示するにはどうすればいいと思う?」


「えっと、こんな感じかな」


エイダの発した命令文コマンドが、下の術式スクリプト入力領域(エリア)に入力されていく。


<script>

alert("へんじがない、ただの魔導書のようだ");

</script>


「正解」


入力した文字が警告文アラートで表示される。


「では命令文コマンドを二行並べると、どう表示されると思う?」


<script>

alert("ボクはわるい魔導書じゃないよ");

alert("へんじがない、ただの魔導書のようだ");

</script>


魔導書がちょっと意地悪な質問をしてきた。エイダは考える。


「どちらともとも表示されると思うけど。『同時に』か『順番に』か?う〜ん。『ボクはわるい魔導書じゃないよ』が表示されて『閉じる』ボタンを押したら、次の『へんじがない、ただの魔導書のようだ』が表示される……かな?」


「正解。術式スクリプトは上から順に、一つずつ命令文コマンドが処理されていく』


予想通りに動いて嬉しそうなエイダに、魔導書はまたまた意地悪な質問を投げる。


「では二行の命令文コマンドを一行にすると、どうなると思う?」


<script>

alert("ボクはわるい魔導書じゃないよ");alert("へんじがない、ただの魔導書のようだ");

</script>


「上から順に処理されるから、今度は両方同時にとか?」


エイダの予想通りの答えに、嬉しそうに魔導書は答える。


「残念。動作は前と変わらないが正解」


「え〜」


魔導書は説明する。


術式スクリプト改行リターン空白スペースはあまり関係ない。極端な話、一行に全部書いても全く問題ない」


<script>alert("ボクはわるい魔導書じゃないよ");alert("へんじがない、ただの魔導書のようだ");</script>


「しかし、これだと読みにくいので、術者プログラマ改行リターンを入れたり、空白スペースを入れたりして見栄えを良くし、理解しやすいようにする」


頑張って理解しようとしているエイダに、さらに魔導書は追い討ちをかける。


「ちなみに、こんなに改行しまくっても動作は全く同じだ」


<script

>

alert

(

"ボクはわるい魔導書じゃないよ"

)

;

alert

(

"へんじがない、ただの魔導書のようだ"

)

;

</script

>


「え〜、これは嘘でしょう?」


さすがに今回は、エイダは抗議の声を上げた、しかし実行すると、全く同じ様にメッセージが表示された。


したり顔の雰囲気を醸し出す魔導書に、エイダは若干の苛立ちを覚えるのであった。


挿絵(By みてみん)

ーーーーーーーーー ログ ーーーーーーーーー

エイダはスクリプトの構文こうぶんを理解した。

構文こうぶん』スキルがLV1になった。

エイダはタグ『<script>』を覚えた。

エイダは関数かんすう『alert()』を覚えた。

ーーーーーーーーーーーーーーーーーーーーーー


登場人物


エイダ・ラブレス

挿絵(By みてみん)

冒険者に憧れている9歳の普通の女の子。

アルファベットも問題なく読めている様です。


職業:術者プログラマ LV1

称号:初心者

スキル:『関数かんすう LV1』『構文こうぶん LV1 new』

関数:『alert() new』

HTMLタグ:『<script> new』


喋る魔導書

挿絵(By みてみん)

エイダが森の奥で出会った喋る魔導書。

質問を通して考えさせて教えるタイプ。


作者より


プログラム言語によっては、改行リターン空白スペースが意味をなす場合があります。例えばpythonでは、インデントがループ内か外かを示します。


i = 0

while i < 10:

 i = i + 1


これだと問題なく10回だけ処理されるのですが、


i = 0

while i < 10:

i = i + 1


インデントがないと「i = i + 1」がループの外になる為、iはず〜っと0のままになり、無限ループに入ってしまうそうです。


今回のお話に出てくるjavasriptのサンプルをjsfiddleに置きましたので、遊んでみて下さい。閑話でjsfiddleの説明をする予定です。


「ボクはわるい魔導書じゃないよ」

https://jsfiddle.net/AkiraMeru/wnvdb30o/


「へんじがない、ただの魔導書のようだ」

https://jsfiddle.net/AkiraMeru/wnvdb30o/1/


「ボクはわるい魔導書じゃないよ」「へんじがない、ただの魔導書のようだ」二行

https://jsfiddle.net/AkiraMeru/wnvdb30o/2/


「ボクはわるい魔導書じゃないよ」「へんじがない、ただの魔導書のようだ」一行

https://jsfiddle.net/AkiraMeru/wnvdb30o/3/


「ボクはわるい魔導書じゃないよ」「へんじがない、ただの魔導書のようだ」断片

https://jsfiddle.net/AkiraMeru/wnvdb30o/4/


参考にしたページ


括弧の種類

http://blog.livedoor.jp/chameleon_web/archives/11469073.html

評価をするにはログインしてください。
ブックマークに追加
ブックマーク機能を使うにはログインしてください。
― 新着の感想 ―
このエピソードに感想はまだ書かれていません。
感想一覧
+注意+

特に記載なき場合、掲載されている作品はすべてフィクションであり実在の人物・団体等とは一切関係ありません。
特に記載なき場合、掲載されている作品の著作権は作者にあります(一部作品除く)。
作者以外の方による作品の引用を超える無断転載は禁止しており、行った場合、著作権法の違反となります。

この作品はリンクフリーです。ご自由にリンク(紹介)してください。
この作品はスマートフォン対応です。スマートフォンかパソコンかを自動で判別し、適切なページを表示します。

↑ページトップへ