ホームJ-CONT談義ホーム>JavaScriptの事

案内嬢

JavaScriptの事

 JavaScriptについて、いろいろ語るページです。
 やる気と「メモ帳」があれば、なおケッコウ。

JavaScript 談義 サイトホーム 履歴転進

JavaScriptとは?



目当て この様な事をさせる呪文がJavaScriptです。パソコンは大丈夫ですか?
 希〜に、止まるかも知れません。こんな講座あるか!

 あそこ↑には「FOR文」を書いており、指定の文言を指定回数だけ勝手に並べます。ここでは100回です。

 またとか、時々見かけます。

 この様な小手先のイタズラに成り下がっています。
 便利なハズなんですが、みんなマジメに勉強しないし、ホムペもアプリで作って、その「ついで機能」で JavaScript いじってるだけだし…

 (一応、画像でも繰り返し表示出来ると言うデモンストレーション)

 まず、呪文の書き方は決まっています。呪文て… (>_< ;

<script language="javascript">
<!--
(呪文を書く所)
//-->
</script>
 (呪文を書く所)にスクリプト(命令)を書けば、それで出来上がりです。
 例えば、「document.write('うんち');」。
 最悪、<script> 〜 </script> だけでも結構です。他にも書き様はありますが、これが基本だと考えます。
(<script type="text/javascript">とか)

服装が趣味 <body>〜</body>に書く場合は、こうします。これは単なるHTMLの記述のお助け記述です。

 だから一回二回の書き込みならば、その都度「手」で書く方が早いのです。
 しかし例の様な「うんち」百回とか(メンドくさすぎる!)「最終更新」など(ど忘れ常習)、機械に勝手にやってもらう方が合理的なのです。
 あと仮に何らかのクダラナイ(または聞こえの良い)言葉を素〜で百回も並べたら「スパム」ですよ。

 なおJavaScriptと言っていますが、ここで扱うのはJScriptかも知れません。
 ま、似たよなモンですが。

<script language="javascript">
<!--
for( var i = 0; i < 100; i++ )// 例えば「うんち百回」なら、これだけです
{ document.write('うんち'); }// 「<!--」「//-->」は、タダのまじないです
//-->
</script>

触るなバカッキャアキャァア!! 例えば左の図なんか、触ったり突ついたりしますと姿が変わります。
 一般のHTMLタグ(ここでは<img>タグ)にも埋め込めるのです。
 始動の引金として onmouseover, onclick, onmouseout が使われています。

<img align="left" src="絵のURL.gif"
onmouseover="this.src='怒り絵のURL.gif'"
onclick="this.src='投げ絵のURL.gif'"
onmouseout="this.src='元絵のURL.gif'"
class="sml" alt="">

 実際によく見かける、「仕掛けだと判るモノ」は「関数」として<head>〜</head>(ヘッダ)に記述されているのが普通です。

表示→
記述→
 単純な仕掛けですが、「記述→」に書いた文字を「表示→」に表示する機械です。

 ここでは、閲覧者のクリック(動作)に反応した、という事が大事な点です。
 実際は小道具やゲーム的なモノに使います。

 他にはこれ(案外寒い)とか。
 中にはイキナリ「プロンプト」が出てきたり、密かに「クッキー」を作成したりする事もありましょう。ガキの遊びとの境界がアイマイな技術です。

 大きな特徴として、オフライン(回線切断状態)でもプログラムが作動する点にあります。仕掛けは知らぬ内に全部ダウンロードしているのです。

目当て 【追加】
 むかし作られた「ウザいページ」と呼ばれるモノですわ。 →ウザいページ
 何と言うか、ちょっとアレですわね。「にちゃん」などに晒されておりましたものですから。

何をしてる

目当て たいていは「部品」を組み合わせた「関数」をヘッダに置いてさり気なく動かすのがクールというものです。あまり重いと嫌われます。
 アプリに作らせると、ワラワラと本人も判らない「関数名」になったりするので、自分のページの仕掛けぐらい自分でなさいましょう。
 unchi( )なんて関数名も可能ですわ。

 「関数」の事

 必ず function と宣言します。直後に関数名を記述、なぜかカッコが付きます。
 →「 function unchi( ) 」(unchi( )は架空の関数名)
 んで、大カッコ { 〜 } で括った範囲が関数の領域です。

function unchi( )←関数宣言
{

(関数の部品を置く所・中身)

}
 関数を使う時は、あの関数名(ここでは「unchi( )」)を呼べば良いのです。時々あの最後のカッコの中に「引数(ひきすう)」という名のネタ(素材)が入ります。
 関数では、直接返す以外ではdocument.write( )命令は書きません。

 「変数」の事

 JavaScript の変数は「数値」と「文字列」の区別すら無くシロート受けしそうですが、肝心な時にエラる原因にもなり兼ねません。
 「数値」とは、1 + 1 = 2 となるモノです。
 「文字列」では、1 + 1 = 11 です。計算をせず、並べるだけです。

 また JavaScript では「変数宣言」無しでも、ときどきそのまま実行します。
 関数の外で何やら unchi = 0; とかしてるのが宣言です。
 関数の中で var unchi = 0; と言うのもあります。その関数内だけの変数です。

 【 if (いふ)文】

 「もし〜ならば」という、典型的な部品。プログラムのほとんどはこれです。

if(zeni == 0)←条件提示
{
	morau( );←条件が合致した場合、呼び出す関数
	zeni = zeni + morota;←条件が合致した場合の作業
}
//	zeni, morota, morau( ) は、いずれも任意の架空変数(関数)名
 JavaScript には、いわゆる「GOTO文」等の強制分岐命令はありません。
 「if文」の中に「if文」を入れる事もあります。(複雑化する)
if(hus <= 50)←基本条件
{
	if(nb == 1)←誰が迎えるか
	{
		if(ry)←使者は誰か?
		{ ss = ' 良いけど、まだ居たの?'; seihi = 1; }
		else
		{ ss = ' しょうがないわねぇ。'; seihi = 1; }
	}
	else if(nb == 2)
	{
		if(ry)
		{ ss = ' ま!いらっしゃい。泊まってかない?'; seihi = 1; }
		else
		{ ss = ' まぁ、良いでしょう。'; seihi = 1; }
	}
	else{ ss = ' 仲良くしましょう。'; seihi = 1; }
}

if(((nb == 1)&&(kuniban == 2))||((nb == 2)&&(kuniban == 1)))
{ hus = husinkan[0]; }

訳: nb が1で kuniban が2であるか、nb が2で kuniban が1である場合は
hus へ配列 husinkan[0] の値を代入せよ

 いずれも実際にゲーム内で使っている「if文」サンプルです。
 「&&」はAND(論理積)、「||」はOR(論理和)です。

 カッコは()だけを繰り返します。初心者はここで挫けます。
 手をグーにして ( の時に親指から伸ばして行き、 ) にぶつかる度に指を折って行けば、正しければ最後にグーに戻ります。
 例なら、「伸伸伸折伸折折伸伸折伸折折折」です。

 【 for (ふぉ〜)文】

 他の言語でもよく見かける繰り返し命令です。

for(var i = 0; i < 100; i++)←iが0から99まで(100回)繰り返す
{
	nani = nani + 'うんち';←繰り返す事
}
//	nani は任意の架空変数名・中に「うんち」が100個溜まる
 i < 100 が「99まで」という点に注意(「以下」ではなく「未満」)。

 【 while (ほわいる)文】

 for 文に似ています。

while(i < 100)←iが0から99まで(100回)繰り返す
{
	nani = nani + 'うんち';←繰り返す事
	i++;←iの値を1増やす(一行程)
}
//	nani は任意の架空変数名・中に「うんち」が100個溜まる
 記述が少ないのがかえって味気ないからか、作者はあまり使いません。

 【swich (すいっち)文】

 作者は全く使いません。if 文で事足りるからです。

swich(un)やる気ないので旧版のコピペ
{
	case "うんち" : itiiti(); break;←breakを忘れると暴走
	case "うんこ" : kangaennno(); break;
	case "ウンチ" : tukareruto(); break;
	defalt: bai();←条件が引っ掛からなかった場合の命令
}
//	引数名・変数名・関数名は、見りゃあ判ろうが、架空
//	case, defalt, break は必要要素である
 if文の方が、幅広く展開させやすいから避けています。

 【一定時間毎に関数を呼び出す】

 「時計」の様な機械を作るのに重宝。

td = setTimeout('unchi( )',1000);関数unchi( )を1000ミリ秒後に1回呼ぶ

clearTimeout(td);呼び出し命令を解除する

//	td は任意の架空変数名
 時間は必ずミリ秒指定です。マシンにもよりますが、50以下では変わらんでしょう。
 これは「1回だけ呼び出す」仕掛けです。それでも作者は暴走阻止措置として、いちいち命令解除をします。「止めたつもり」が危ない!
 何度も呼ぶ場合は、自分で自分を呼ぶ様に書けば良い事です。
 一応、setInterval('unchi( )',1000); というのがあって、これは勝手に1000ミリ秒毎に呼んでくれますが、作者はよく暴走させるので使いません。

 【正規表現】

 一応は、これも関数内の部品になる事も…

if(pass.match(/[^ヒフミヨイムナヤコト]/))←if文で判断してるな…
{ alert('文字が不正ですー。'); return; }

//	pass は任意の(略)
 「ヒフミヨイムナヤコト」以外の文字が含まれていたらダメ!というモノです。
 普通の部品と違いますので提示だけにしておきます。

 「関数」内部の部品は、あらかたこんな感じです。これらを組み合わせて任意の機械を作るというだけの事です。そういうゲーム、あったでしょ昔?

 配列・Array

 複数のデータの格納方法です。それらは任意に個別に処理出来ます。
 番号札を付けた人が並んでて、番号で任意に呼び出す様なモノです。



   
otomo = new Array('ima','ohb','nag','eba');←otomo は配列変数
//
otomo = new Array();←個別に指定する書き方
otomo[0] = 'ima';
otomo[1] = 'ohb';
otomo[2] = 'nag';
otomo[3] = 'eba';
 変数otomoの中に「'ima','ohb','nag'」というデータが入ってますが、番号札も付いています。指定が無ければゼロから始まります。
 後は簡単な事で、呼び出しボタンから数字だけで呼んでるのです。

 下のは、個別に指定する書き方を示しています。数が少ない場合は上の方で十分ですが、10も20も並べると、今何番かが判らなくなります。
 そこで下の様な書き方をする訳で、番号を飛ばす事も出来ますが、抜かされた番号も仮想的に存在します。
 (「多次元配列」「split配列」などは、基本を逸脱するので割愛)

外部ファイル

目当て スクリプトに熱を入れ過ぎて膨大な記述量になった、ページをまたがって使いたい、などの悩みを解決する策として「外部ファイル」があります。
 その名の通り、スクリプトを別ファイルにして参照しつつ使う方法です。
 その時は、ガワ部分は書かず、中身スクリプトだけを記述します。それを「unchi.js」の様な名前にして任意の場所に置くだけです。
 参照はヘッダに

<script language="javascript" src="unchi.js"></script>
 の様にするだけで、そこにスクリプトがある様な振舞いをします。

JavaScript 予約語

目当て JavaScriptでは、変数名・関数名などは任意に付けられますが、一部「予約語」というモノがあって、それらと同じ名前は付けられません。

〈 JavaScript 予約語 一覧・多分〉

abstract boolean break byte case catch char
class const continue default delete do double
else extends false final finally float for
function goto if imprements import in instanceof
int interface long native new null package
private protected public return short static
super switch synchronized this throw throws
triansient true try typeof var void volatile while with


(予約予定) comment debugger enum export label

目当て付けても結構ですが、単にエラって作動しません。
 もちろん surudo の様に「含まれ」は該当しません。

ところがどっこい!!
↓↓↓

【追加変更? 2020/05/14 JavaScript 予約語 一覧】

break case catch continue debugger default delete do else
finally for function if in instanceof new return switch this
throw try typeof var void while with class enum export extends
import super implements interface let package private
protected public static yield

目当て 「名無しさん」から貴重なご指摘を承りました。↑BBSからコピペ編集

 当方、環境が変わってしまって JavaScript を弄る機会がめっきり減ってしまいまして、そういう情報から離れておりました故の不手際でした。
 まァ双方を参照しながら作業すれば鉄板でしょうし、変数名などそれこそ unchi とかで問題ない訳ですから。

ページトップ

JavaScript 談義 サイトホーム 履歴転進
(c) PHALSAIL HeadQuarters