約 7,945 件
https://w.atwiki.jp/marisan/pages/17.html
適度にがんばります。 てかこれ作った手前がんばらねば。 進捗状況 4/29:とりあえず演習問題をやり直してみましたよ。演習01〜15まで完了、しかし力つきました。寝ます。 4/30:さぼ…久しぶりに大学の仲間と飲んで、なんか落ち着いた日でした。 しかし帰宅してニュース見てびっくり。 5/1演習16〜17完了(演習16:for文のなかで、iの範囲を「i = args.length」にしていてずーっと悩んでいました。反省。) 子ネコが今月中にも我が家にやってくることになり、るんるんですよー。 二つの数値を交換する、三つの数値から最小値を選ぶ。どちらともコマンドラインから数を持って来るようにしました。 5/2絶対値を表示する:コマンドラインから数を入力することにしたんですが、argsをint型に変換するのを最初にやったら実行時エラー。なんとなく理由は感覚でわかるものの…ん?って感じ。 変数の値によって正負・0を表示:とくに問題なし。 階乗を求める:nを定数にする理由って??? 偶数のみ出力する:これもNを定数にする理由って??? 配列の要素の和を求める、配列の要素の最大値を求める:とくに問題なし。 配列を反転させる:まだ途中…泣。拡張forループが課題。 配列を定数Rだけ右に循環させる:なんとか…。定数R=1の場合ならOK。 配列から定数Sを探し、その添字を出力する:変数pをただの宣言じゃなくて、int p = 0;で宣言したら動いた。なんでだ? 昇順の配列からSを探し,その添字を出力する:途中で力尽きました…。
https://w.atwiki.jp/tetdm/pages/13.html
データ型 printf if文 比較演算子 whilefor ビット演算 シフト演算 マスク処理 ポインタ 配列のアドレス 配列とポインタ 文字列 2次元配列 構造体 過去問 前期中間解答2
https://w.atwiki.jp/javanige/pages/20.html
public アクセスの制限を解除。 static newしなくてもクラスが使えるようになる。 ただし存在が一つに固定される為、同じクラスを別の名前で作成みたいなことはできない。 配列 数字の並び (例)int型の配列 生成 ①int 配列名 = new 配列型[要素数]; ※要素数は配列の大きさ。 ②int 配列名 = {1,2,3}; 中身 配列名[0] → 1 配列名[1] → 2 配列名[2] → 3 配列名[3] → エラー List 便利な配列。追加、削除が楽。 (例)int型のList import java.util.ArrayList; import java.util.List; 生成 List Integer list = new ArrayList Integer (); ①追加 add(追加したい数字) list.add(3); ←数字の3を一番後ろに追加。 ②削除 remove(削除したい場所) list.remove(0); ←0番目のデータを削除 ※ Integer ってなんだ? int型List使うときはコレを書く。 ○○クラス型Listを使いたければ ○○クラス と書けばよい。 char 文字列をchar変数に入れると数字で管理してくれる。 文字を数字に変換したいときは char c = a ; int num = (int)c; Rectangle 座標x,座標y,幅w,高さhを矩形の事。 矩形とは4つの角が全て90度の四角形の事。 使い方 Rectangle 四角 = new Rectangle( 30, 40, 50, 100 ); →座標(30,40)の位置に幅50、高100の矩形を表す。 四角.x → 30 四角.y → 40 四角.width → 50 四角.rect.height → 100 矩形の当たり判定 四角.contains( rectangle r )すべてを含むとき 四角.intersects( rectangle r )チョットでも触れた時 ※引数にPointでも可 インターフェイス ロボットでmove、人間でmoveで別の処理を書いても同じように呼び出せるってこと なんでもstaticにしちゃいけない理由がある。そうそれは・・・、ヒロックスさんお願いします。 -- ほじほじさん (2012-01-21 03 16 24) staticおじさんでぐぐるべし -- hiro (2012-01-22 00 15 32) remove(削除したい要素) って「追加した数字」のことでいいのかな?それとも追加した番号なのかな? -- 名無しさん (2012-02-01 00 46 48) 「削除したい要素」ってのには2種類あります。remove()に指定できるのは、int型(indexとか要素番号)か、オブジェクトです。例えばですが、1というint型の数値をaddした場合、1というint型の数値を削除っていうことはできませんが、もし0番目に追加したのであれば、remove(0)(0番目の要素を指定、indexを0で指定)で追加したint型の1を削除することができます。余談ですが、add(new Integer(10))としたあとにremove(new Integer(10))は一見できなさそうですが、できます! -- シコシコ麺 (2012-02-01 01 00 33) 補足ですが、add(new Integer(10))を2回したあとにremove(new Integer(10))とすると、先に追加したほうの10が消えます -- シコシコ麺 (2012-02-01 01 02 27) new Integer(10) 毎回インスタンス化して参照先違うはずのに、なんで消せるのかという疑問があったので、クラスを適当に作成して実験した結果、equalsメソッドをオーバーライドしてtrueを返すようにしてやれば、削除できることがわかりました。equalsでtrueが返ったら削除に成功するということなので、例えば"あいうえお"をaddして"あいうえお"をremoveすることができるということになります。 -- シコシコ麺 (2012-02-01 01 16 50) そういえば、staticの説明おかしい・・・あとで改めて説明しよう -- H.Ayame (2012-02-01 07 17 14) 名前 コメント
https://w.atwiki.jp/perltips/pages/24.html
Perlの配列、ハッシュは、それぞれ要素としてスカラー変数か、参照しか持てない。 よって、ハッシュに配列を格納する場合、配列のリファレンスを代入する。 使用例 my %hash; my @list = (1,2,3); #No1 $hash{"test"} = [@list]; #ここがポイント。[]で囲う事で、無名配列のリファレンスを生成し代入する。 #No2 $hash{"test"} = ¥@list; #直接リファレンスを生成、代入もできる。非推奨。 my @ref = @{$hash{"test"}}; #デリファレンスする。@refはこれ以降、普通のリストとして使用できる。なお、配列自体がコピーされるため、@ref内の値を変更しても%hashに格納されたリスト内の値は変わらない。 print $hash{"test"}[1]; #代入しないでそのまま利用も可 $hash{"test"}[1]=10; # No.2の方法を使った場合、元の@listの値が変更される。No.1では@listの値は変更されない。 参照 http //perldoc.jp/docs/perl/5.10.0/perldsc.pod#HASHES32OF32ARRAYS
https://w.atwiki.jp/kof98um/pages/182.html
【稼動店舗情報 近畿】 目次 三重県 滋賀県 奈良県 京都府 大阪府 和歌山県 兵庫県 三重県 店舗名 所在地 備考 アーバンスクエア津南店 津市高茶屋小森町138 ゲームオフ四日市 四日市市日永1-2-9 アーバンスクエア鈴鹿店 鈴鹿市道伯4-1714-18 セガワールド松阪 松阪市船江町780番地 ジョイプラザあさひ店 三重郡朝日町大字小向字御田295-1 滋賀県 店舗名 所在地 備考 ジャングルクラブ堅田 大津市今堅田2-39-22 ゲームランドPOPS 彦根市高宮町太田2027 アクション長浜 長浜市川崎町字八王子町375 入荷日未定 奈良県 店舗名 所在地 備考 キャノンショット西大寺店 奈良市二条町2-4-14 京都府 店舗名 所在地 備考 a-cho 京都市中京区寺町通四条上る東大文字町302-303 サードプラネットBiVi京都二条店 京都市中京区西ノ京栂尾町1-6 プレイランドキング七条店 京都市下京区東境町187 1クレ50円 セガワールド六地蔵 京都市伏見区桃山町山ノ下32京都ショッピングセンタービルAM棟2階 スーパーヒーロー山科 京都市山科区御陵鳥ノ向町2番地フウキビル ゲームスペースプラニー 宇治市広野町西浦100番地 大阪府 店舗名 所在地 備考 明大モンテカルロ 大阪市北区小松原5-5 1クレ50円/3台/ネオジオ配列2,カプコン配列1 ゲームスペースベガス 大阪市北区天神橋4丁目12-2 チャレンジャーABABA天神橋店 大阪市北区天神橋3-8-23コア扇町ビル1F ビデオシティRENO 大阪市北区梅田1-2-2 B100駅前第2ビルB1F 1クレ100円/カプコン配列 ゲームプラザカーニバル 大阪市北区梅田1-1-3駅前第3ビルB1F76号 ハイテクランドセガミスト2 大阪市北区梅田1-11-4駅前第4ビルB1F 1クレ100円 アミュージアムよしもと店 大阪市中央区難波千日前12-35スイングよしもとビル1F 1クレ100円/ネオジオ配列 ハイテクランドセガアビオン 大阪市浪速区難波中2-3-15MMOビル 1クレ100円/ネオジオ配列 難波ヒルズ 大阪市中央区難波3-2-34 1クレ50円/ネオジオ配列 アミューズメントスコット 大阪市浪速区日本橋5-12-5 1クレ50円/2台/ネオジオ配列1,カプコン配列1 キャンディウエスタン三国店 大阪市淀川区西三国4-8-19阪急三国駅前ビル B1F セガワールドアポロ 大阪市阿倍野区阿倍野筋1-5-31 チャレンジャー関大前店 吹田市千里山東1-14-2 チャレンジャーガムガム店 吹田市岸部南1-24-9 コスミックプラザABC 寝屋川市早子町18-14 2F アミューズボンボン 寝屋川市香里南之町20-23 エンジョイパラダイス 東大阪市長栄寺7-3パーラーメトロ永和店2F ゲームプラザ エム 守口市本町1丁目3番地 アミューズメントパークエルロフト 茨木市宇野辺1丁目4-3 クラブセガ東梅田 大阪市北区堂山町9-28 ウエストナイン 大阪市此花区西九条3-15 ハイテクランドセガ西中島 大阪市淀川区西中島3-16-8 深井センタービル1・2F 和歌山県 店舗名 所在地 備考 ピタゴラス 和歌山市土入73-1 1台 ピタゴラスMQ 和歌山市加納319-1 1台 兵庫県 店舗名 所在地 備考 アミューズスペースミール 三田市対中町5-21 入荷日未定 伊丹ゲームスペース 伊丹市中央1-5-5ボントンビル1F 1クレ50円 ゲームサンシャイン 尼崎市七松町1-2-1フェスタ立花北館203・204 1クレ50円/A落ち配列 セガ三宮サンクス 神戸市中央区琴ノ緒町5-4-5高架下404~407 入荷日未定 GAME IN COO 神戸市中央区旭通5-2-5 100円2クレ/1台 名前 コメント すべてのコメントを見る
https://w.atwiki.jp/yasrun/pages/171.html
型パラメータ付きリストの配列 こんなプログラムを作成してみました。 NGと書いてある行はコンパイルエラーになります。 OKと書いてある行でも、※x と書いてあるところはその警告が出ます。 package test3; import java.util.ArrayList; import java.util.List; public class Main { public static void main(String[] args) { List Main list = new ArrayList Main (); // OK List Main [] lists1 = new ArrayList Main [5]; // NG ※1 List Main [] lists2 = new List Main [5]; // NG ※2 List[] lists3 = new ArrayList[5]; // OK ※3 List[] lists4 = new List[5]; // OK ※4 List Main [] lists5 = new ArrayList[5]; // OK ※5 List Main [] lists6 = new List[5]; // OK ※6 MainList[] list7 = new MainList[5]; // OK } } class MainList extends ArrayList Main { } /* * ※1 ArrayList Main の総称配列を作成できません * ※2 List Main の総称配列を作成できません * ※3 List は raw 型です。総称型 List E への参照は、パラメーター化する必要があります * ※4 List は raw 型です。総称型 List E への参照は、パラメーター化する必要があります * ※5 型の安全性 型 ArrayList[] の式は、未検査の型変換を使用して List Main [] に準拠するようにする必要があります * ※6 型の安全性 型 List[] の式は、未検査の型変換を使用して List Main [] に準拠するようにする必要があります */ 「総称配列」というのは要するに型パラメータが付いているクラスの配列、ってことですね。 結局のところ、どう頑張っても警告は出てしまいます。「型パラメータ付きリストの配列」なんて使っちゃいけないってところでしょうかね。 リストを複数格納可能なクラスを用意して使用するか、Mapを使用するか。 どうしても警告が出ないようにListの配列を使いたい場合は一番最後の例のように、型パラメータ付きArrayListの派生クラスを作って使用するしかないですが、あまりエレガントとは言えないですね。
https://w.atwiki.jp/yotagarao/pages/106.html
HMMER HMMERは、隠れマルコフモデルを使って目的の配列中に特定のドメイン構造があるかどうかを調べてくれるソフトです。 インストール、使い方などは至極簡単で、 基本はマニュアルに従えば良しです。 とりあえずマニュアルに従ってインストールします インストールできたら、用意するもの 実際にドメイン構造を調べたいアミノ酸配列のデータ(複数個でもOKだが、アミノ酸配列である事が必要。 fas形式でOK 改行コードはUNIX) ドメイン構造のシードファイル(同じくfas形式でOK 改行コードはUNIX) これらをhmmerフォルダの中のsrcフォルダに移動させます。 んで、ターミナルか何かで自分もsrcフォルダの中に移動します。 まずはシードファイルをもとにモデルをたてます。 hmmer-2.3.2/src yotako$ hmmbuild モデルのデータファイル名 シード ファイル名 モデルのデータファイル名は自分で好きに決めてください 次にたてたモデルのキャリブレーションを行います hmmer-2.3.2/src yotako$ hmmcalibrate モデルのデータファイル名 モデルのデータファイル名は先にbuildしたやつと同じ名前です これでモデルの調整が終わりました。それではいざアミノ酸配列に対してhmmでドメイン構造をサーチします hmmer-2.3.2/src yotako$ hmmsearch モデルのデータファイル名 ドメイン構造を調べたいアミノ酸配列ファイル これだと結果がターミナル上にガーッと出てきてしまうので、 hmmer-2.3.2/src yotako$ hmmsearch モデルのデータファイル名 ドメイン構造を調べたいアミノ酸配列ファイル > 結果ファイル 好きな名前をつけた結果ファイルに出力を格納するとよし。 アミノ酸配列に対して調べたいドメイン構造が2つ以上ある場合 モデルのデータファイルを集めたファイルを作ると良し。 マニュアルには二通りの方法が書いてあるけどとりあえず1つを紹介しておくと、 hmmer-2.3.2/src yotako$ hmmbuild モデルのデータファイル名1 シード ファイル名1 hmmer-2.3.2/src yotako$ hmmbuild モデルのデータファイル名2 シード ファイル名2 ・ ・ ・ hmmer-2.3.2/src yotako$ cat モデルのデータファイル名1 モデルのデータファイル名2 ... モデルセット名 hmmer-2.3.2/src yotako$ hmmcalibrate モデルセット名 hmmer-2.3.2/src yotako$ hmmpfam モデルセット名 ドメイン構造を調べたいアミノ酸配列ファイル > 結果ファイル モデルセット名は自分で勝手に決めてよい いったんモデルセットを作ってから、まとめてキャリブレーションを行っている。 HMMのサーチをする時のコマンドがhmmpfamになっている点に注意
https://w.atwiki.jp/raycy/pages/179.html
安岡孝一氏による読み方は、http //slashdot.jp/search.pl?op=journals uid=21275 q=QWERTY。そのmy解題は アンチ「QWERTY言説」紹介ショートヴァージョン、『キーボード配列QWERTYの謎』共著者安岡孝一タイプライター歴史学の特徴と方法、アンチ「QWERTY言説」の検討、安岡孝一共著『キーボード配列QWERTYの謎』など。 安岡孝一氏は、「never jam! upstrike式は絡まったりしない」説であり、タイプバスケット上のタイプバーの配置による配列変遷史の検討手法を、少なくとも、アップストライク機に関しては、棄却した。ここの中の人は、その棄却された、安岡孝一氏が決して採るはずのないナンセンスな手法を適用して論を進めている、いわば「タイプバスケットの呪縛」説論者といえよう。あるいは、タイプバスケットに呪縛された論者である。 依拠プロトコル 参照する歴史学の方法。浪川健治が史料への踏み込み方として挙げた点を参考に進めたい。歴史学における言説の取り扱いはどうなっている?考察対象:白須裕之、浪川健治、安岡孝一。http //b.hatena.ne.jp/raycy/20090825#bookmark-15530216 対象とする歴史的言説(古くからの、古伝承) 対象となる、伝承、ないし俗説は、いったいどのような形をしているのか。伝承:http //www26.atwiki.jp/raycy/?cmd=search keyword=%E4%BC%9D%E6%89%BF 各務忠方『誰にも分るタイプライターの構造と使ひ方』(太陽堂書店, 大正13年11月)108ページhttp //slashdot.jp/~yasuoka/journal/423141 キーの配列に就ては何故アルファベット順に配列されて居らぬかは初學者の誰しも起す疑問であるが、現に使用せられてゐるキーの配置はUnivenrsal又は Standard Keyboardと稱せられて、此配列法は左右双手を相互に迅速に活動し、平均に使用させんが爲めで、之れによつてタイプバーの衝突を比較的に輕減する事が出來、尚ほ又速力の點から云つても最も利益があるのである。http //www26.atwiki.jp/raycy/pages/116.html 小林三郎『英文Typewriterの発達とDvorak Keyboardについて』, 電気通信大学学報, 第18号 (1965年8月), pp.69-78 機械の働きがにぶいため1つの文字を打ってから次の文字を打つまでに前に打った文字Barが徐々に下ってきて途中で衝突のおそれが大きい.これをできる限り避けるため,頻度の大きい文字が円形の一方に偏在せぬよう分散させたhttp //www26.atwiki.jp/raycy/pages/123.html 2ちゃんねる よろしければ配列について教えろ その8より名無しさん:2009/08/05(水) 「高速打鍵でバーがもつれないようにするため、QWERTY配列は意図的に打ちにくく設計してある」 俗説「バーが絡まない範囲で可能な限り打ちやすく」http //www26.atwiki.jp/raycy/pages/177.html これは、実際、市中から採取された文言である。「意図的に打ちにくく」は、「バーがもつれないように・バーが絡まない範囲で」かつ「可能な限り打ちやすく」が二大目標レンマで、その結果が「打ちにくく」と感じるのは、絡み対策の必要性を軽視できる観点にいるからでもあろう。絡み対策の必要認識の軽重の問題であろう。 『キーボード配列QWERTYの謎』@amazon#ref error :画像を取得できませんでした。しばらく時間を置いてから再度お試しください。商品の説明。出版社/著者からの内容紹介。(消費者リテラシー的観点に立てば、”本の売り文句能書き。情報生産?者側・情報配信販売者側からの説明。生産・販売者側の論理の押し付け。”と、一応は一旦、バッファしておくべきであろう。) タイプライターのキーボードがQWERTY配列だったのは、どうしてなんだろう。 「タイプライターのキーボードは、元々はABC順に並んでたんだ。でも、タイピストのスピードが上がるにつれて、タイプライターの性能がついていけなくなり、印字をおこなうアーム同士が絡まるトラブルが増えていった。そこで、アームの衝突を防ぐために、タイピストがなるべく打ちにくいようなキー配列をデザインしたんだ。それがQWERTY配列だよ」http //b.hatena.ne.jp/raycy/20090823#bookmark-15485050 この最後の例は、後知恵構成的、実際の取材文言といえるかどうか。なぜなら、本書の構成上、後段でたたきやすいように、伏線が埋め込まれている可能性あり、、取り扱い注意、、 だが、この文面だと、「アーム同士が絡まるトラブルが増えていった。そこで、アームの衝突を防ぐために」となっている。これは、「絡まる」に「衝突」も含まれるのか、あるいは、少なくとも、「衝突」という事象を認識対象には挙げているってことだ。なあ。てか、「アームの衝突を防ぐために」説と読めるなあ。ならば、ショールズらの開発期に限局すれば、真言である可能性があるかもしれないタイプだな。タイピストをテスタータイピストと読み、あとはアームの問題だけだ。アップストライクを思い浮かべていない問題は、デコード者側の問題で文言メッセージ記号信号符号とは別だ。文面を読む人が読めば、アップストライクのことときちんとデコードして読むことも可能だ。読む者聞くものが、どのような古語デコード表を持っているかによる。アームという機構だって、英語文献ではどうなってますか? そうか、古語なんだな、、現代語と同じ顔して、歴史古語が混じってる、、歴史辞書を参照して読まなきゃならないわけわかのいわば「のりと祝詞」状態なんだよ、言説は。タイプバーはどうだろかな。開発期のタイプライター、それは、アップストライクだったんですよ。タイプライターの古語。フロントストライク機時代の日本人に説明するならば、当時1870年ごろ開発期のいわゆるアーム部位、ショールズらはタイプバーと記し、あるいはタイプ・レヴァーやレター・レヴァーなどと呼ばれた、。US Patents の long-arm and short-arm そうだ、むしろ、タイプバーは呼称として確立しておらず、むしろ、サイエンティフィック・アメリカンが記した、タイプ・レヴァーのほうが、一般に周知された語句ということにさえなる。そしてそれら現物を共通に理解しうる説明概念的呼称としては、むしろ、アームのほうが、通用概念として、ことに初期タイプライター黎明期においては、幅を利かせていたぐらいかもしれない。 「打ちにくくなるように」は、「ポストelectronic era」的な観点移動によって起こったことかもしれない。人間工学もある現在の観点から見れば、そのショールズらの解決策は、使い勝手第一主義ではなくて、機構的制約下での最善化であった。そこんとこ、現代の観点からみれば、限界がありますよってな。 ほんとに、「なるべく打ちにくく」ってな文言は、あったのかなあ。そういう言説は、あったのだろうか。最遅配列、遅とは言ってないのか。最回りくどい配列かな、何だろ、最まどろっこしい配列、最わずらわしい配列、最煩雑配列、、 意図的に打ちにくく、わざと打ちにくく、は、あっても、 なるべく打ちにくく、っていうのは、最大限できる限り打ちにくく 最もならば、最大とは限らず、大雑把に言ってかなり最大の部類に属するってな使い方もあろうが、 意図的に、わざとは、そういうチューニング方針のもとってことで、なるべく絡まない方針のもと、それと打ちにくいは、必ずしも同義でない、比例しない、、。 なるべく絡まずに結果としてトータルなるべく早く打てるようにした。なるべくが二つけんかしてる。ま、これが、レンマが二つ、ジ・レンマ状況。そこで、間を取った解決、ほどの問題が出てくる。ほどほどのバランス、程度。最善的解決案が求められる、 その結果が、「打ちにくくした」と受け取られてしまう、、 ポストelectronic era さて、同じ事象でも、どの観点から眺めるかで、事情は異なってくる。http //blog.goo.ne.jp/raycy/s/electronic+era 坂村健の 二倍ダッシュ ――つまり アフターというかポストelectronic eraの、タイプバー関係ない世代から見れば、みょうちくりんな制約があったものだ、それと、打ちやすさとは、両立するの?ってな感じはある。 ところがどっこい、全部ではないが、両立する面も、確かにある程度はあるんだなあ、これが。ってのが、いまの感触。もちろん、最善って意味じゃなくて。まあ最悪ってわけじゃあないってな。 どういう点かというと、感じとしては、まず、digraphをタイプバスケット上でつなげると、打ちずらそうな感じがする。ホームポジションとか、一段に並ばなくて、ジグザグになっちゃいそうだ。でもないかな?THだけが特に、高頻度子音連続文字digraphなのかな? あと、数字段を設けたて、そこに母音の多くをはめ込んだ。 でもじゃあなんでDvorakはそうしなかったか。ん。 まっ、おいおい考える。ってか、Dvorak時代には、タイプバスケットは半円になっていたから、文字上段でも中段でも、どっちでも大して絡みやすさの程度が変わらなくなっていたからかな? あっ、Dvorakもフロントストライク式の絡み制約下のQWERTY式スタガー配置制約下でのデザインであったと、想定してます。http //blog.goo.ne.jp/raycy/e/707c682eec7c211df6ca9612e9e04fe0 http //www26.atwiki.jp/raycy/pages/94.html ショールズ後年特許配列 でも、ショールズらのも、文字段を3段にしていたからよかったのであって、その後のショールズ後年特許のように文字段をほぼ中二段だけにしてしまっては、どうだったか。タッチタイプ時代に果たして対応できたか、、#ref error :画像を取得できませんでした。しばらく時間を置いてから再度お試しください。http //www26.atwiki.jp/raycy/pages/143.html 山田尚勇も感心するように、あたかもタッチタイプ時代を見越したのかのような配列にQWERTYはある意味成っていたhttp //blog.goo.ne.jp/raycy/e/a2a3f8f3d862cfe26305ac12845eb4ce。だが、ショールズには、その意図はなかった、というのが、この後年特許配列の意味するところであろう。どちらかといえば、頻出digraphのタイプバー配置隣接忌避に注力した配置ではなかったのか。#ref error :画像を取得できませんでした。しばらく時間を置いてから再度お試しください。 http //www26.atwiki.jp/raycy/pages/163.html http //www26.atwiki.jp/raycy/pages/145.html 安岡孝一氏はこの配列を称揚しているようであった。というか、「QWERTYはたまたま手元にあっただけの通過点」http //blog.goo.ne.jp/raycy/e/7b66b03b97802a62728cba97fc966e21だったっけかな。後年特許配列の権利、1890年2月17日年のショールズ没後、ショールズ特許を引き継いだ者http //slashdot.jp/~yasuoka/journal/377632が、どういう判断だったのか、この配列を採用しなかった。いわゆるタッチタイプ時代に入りつつあったころ、かな、マッガリンとかだっけか。 この配列を、現代のタッチタイプで使うとしたら、どう評価されるか、、 指の置き方が違うのかな?右手中心 左手は、、 link_trackback() counter -
https://w.atwiki.jp/0x0b/pages/99.html
Mozilla Javascriptの続き 定義済みコアオブジェクト Array オブジェクト Boolean オブジェクト Date オブジェクト Function オブジェクト Math オブジェクト Number オブジェクト RegExp オブジェクト String オブジェクト 定義済みコアオブジェクト このセクションではコア JavaScript の定義済みオブジェクトについて説明します。 Array オブジェクト Boolean オブジェクト Date オブジェクト Function オブジェクト Math オブジェクト Number オブジェクト RegExp オブジェクト String オブジェクト Array オブジェクト JavaScript には配列を表す明確なデータ型というものはありません。しかし、定義済みの Array オブジェクトとそのメソッドを使用することで、アプリケーションで配列を扱うことができます。Array オブジェクトにはさまざまな方法で配列を操作するメソッドがあります。例えば、配列の要素をつなぎ合わせたり、逆転したり、ソートしたりするものがあります。また、配列の長さを決定するプロパティや、正規表現とともに使用するプロパティもあります。 配列とは、その個々の値を名前やインデックスで参照する順序集合です。例えば、その従業員番号でインデックス付けした、従業員の名前からなる emp という配列を作ることができます。すると、emp[1] は従業員番号 1 を、emp[2] は従業員番号 2 を、というように指すようになります。 配列の作成 Array オブジェクトは次のようにして作成します。 1. arrayObjectName = new Array(element0, element1, ..., elementN) 2. arrayObjectName = new Array(arrayLength) arrayObjectName は新しいオブジェクト名または既存のオブジェクトのプロパティ名です。Array のプロパティやメソッドを用いるときは arrayObjectName は既存の Array オブジェクトの名前または既存のオブジェクトのプロパティ名です。 element0, element1, ..., elementN は配列の要素の値からなるリストです。この形式で指定する際に、配列はその要素として指定した値で初期化されます。また、配列の length プロパティに引数の個数がセットされます。 arrayLength は配列の初期状態の長さです。次のコードは 5 つの要素を持つ配列を作成します。 billingMethod = new Array(5) 配列リテラルも Array オブジェクトです。例えば次のリテラルは Array オブジェクトです。配列リテラルの詳細については 配列リテラル をご覧ください。 coffees = ["French Roast", "Columbian", "Kona"] 配列要素の格納 値を要素に代入することで配列要素を格納することができます。 emp[1] = "Casey Jones" emp[2] = "Phil Lesh" emp[3] = "August West" 配列作成時に要素を格納することもできます。 myArray = new Array("Hello", myVar, 3.14159) 配列要素の参照 要素の順番を表す数を用いて配列の要素を参照することができます。例えば、次の配列を定義したとします。 myArray = new Array("Wind","Rain","Fire") すると、その配列の最初の要素は myArray[0] として、第 2 の要素は myArray[1] として参照できるようになります。 要素のインデックスはゼロ (0) から始まりますが、配列の長さ(例:myArray.length)はその配列の要素数を直接表します。 Array のメソッド Array オブジェクトには以下のメソッドがあります。 concat は 2 つの配列を結合し、新しい配列を返す。 myArray = new Array("1","2","3") myArray = myArray.concat("a", "b", "c"); // myArray は ["1", "2", "3", "a", "b", "c"] となる join(deliminator = ",") は配列の全要素を結合し、文字列にする。 myArray = new Array("Wind","Rain","Fire") list = myArray.join(" - "); // list は "Wind - Rain - Fire" となる pop は配列から最後の要素を取り除き、その要素を返す。 myArray = new Array("1", "2", "3"); last=myArray.pop(); // MyArray は ["1", "2"] となり、last = "3" となる push は 1 つ以上の要素を配列の最後に追加し、追加された最後の要素を返す。 myArray = new Array("1", "2"); myArray.push("3"); // MyArray は ["1", "2", "3"] となる reverse は配列の要素を逆順に並び替える。最初の配列要素は最後に、最後のものは最初に来る。 myArray = new Array ("1", "2", "3"); myArray.reverse(); // 配列を並び替え、myArray = [ "3", "2", "1" ] となる shift は配列から最初の要素を取り除き、その要素を返す。 myArray = new Array ("1", "2", "3"); first=myArray.shift(); // MyArray は ["2", "3"] となり、first は "1" となる slice (start_index, upto_index) は配列の一部分を抽出し、新しい配列を返す。 myArray = new Array ("a", "b", "c", "d", "e"); myArray = myArray.slice(1,4); //インデックス 1 からスタートし、インデックス 4 までの全要素を抽出し、[ "b", "c", "d" ] を返す。 splice(index, count_to_remove, addelement1, addelement2, ...) は配列に要素を追加し、かつ/または配列から要素を取り除く。 myArray = new Array ("1", "2", "3", "4", "5"); myArray.splice(1,3,"a","b","c", "d"); // MyArray は ["1", "a", "b", "c", "d", "5"] となる // このコードはインデックス 1("2" があるところ)からスタートし、そこの 3 要素を取り除き、その場所に連続した要素をすべて挿入する sort は配列の要素をソートする。 myArray = new Array("Wind","Rain","Fire") myArray.sort(); // 配列をソートし、myArrray = [ "Fire", "Rain", "Wind" ] となる sort は配列の内容をどうソートするかを決定するコールバック関数をとることもできます。関数は 2 つの値を比較し、3 つの値のうちの 1 つの値を返します。 ソートシステムにとって a が b より小さい場合、-1(または任意の負数)を返す ソートシステムにとって a が b より大きい場合、1(または任意の正数)を返す a と b が等価と見なされる場合、0 を返す 例えば、次のコードは配列の最後の文字についてサポートします。 var sortFn = function(a,b){ if (a[a.length - 1] b[b.length - 1]) return -1; if (a[a.length - 1] b[b.length - 1]) return 1; if (a[a.length - 1] == b[b.length - 1]) return 0; } myArray.sort(sortFn); // 配列をソートし、myArray = ["Wind","Fire","Rain"] となる unshift は 1 つ以上の要素を配列の先頭に追加し、その配列の新しい長さを返す。 2 次元配列 次のコードは 2 次元配列を作成します。 a = new Array(4) for (i=0; i 4; i++) { a[i] = new Array(4) for (j=0; j 4; j++) { a[i][j] = "["+i+","+j+"]" } } この例では次の行を持つ配列が作成されます。 0 行目:[0,0][0,1][0,2][0,3] 1 行目:[1,0][1,1][1,2][1,3] 2 行目:[2,0][2,1][2,2][2,3] 3 行目:[3,0][3,1][3,2][3,3] 配列と正規表現 配列が正規表現と文字列との間のマッチ結果であるとき、その配列はそのマッチについての情報を持つプロパティと要素を返します。配列は RegExp.exec、String.match、String.split の戻り値です。正規表現とともに配列を使用することに関する情報は、第 4 章の 正規表現 をご覧ください。 Boolean オブジェクト Boolean オブジェクトはプリミティブな真偽値型のラッパです。Boolean オブジェクトを作成するには次のような構文を使用します。 booleanObjectName = new Boolean(value) プリミティブな真偽値の true と false を Boolean オブジェクトの true や false という値と混同しないでください。undefined や、null、0、NaN、空文字列のどれでもない値を持つどんなオブジェクトも、そして false という値を持つ Boolean オブジェクトも、条件文に通されると true に評価されます。詳しくは if...else 文 を参照してください。 Date オブジェクト JavaScript には日付を表すデータ型がありません。しかしながら、Date オブジェクトとそのメソッドを使用することで、アプリケーションで日付と時刻を扱うことができます。Date オブジェクトには日付をセット、取得、操作するためのメソッドがたくさんあります。プロパティは一切ありません。 JavaScript は Java と同じように日付を扱います。2 つの言語には共通する日付に関するメソッドが多くあります。また、両言語ともに日付を 1970 年 1 月 1 日 00 00 00 からのミリ秒数として保持します。 Date オブジェクトの範囲は 1970 年 1 月 1 日 (UTC) を基準に -100,000,000 日から 100,000,000 日です。 Date オブジェクトは次のようにして作成します。 dateObjectName = new Date([parameters]) ここで dateObjectName は作成する Date オブジェクトの名前です。すなわち、新しいオブジェクトの名前か、既存のオブジェクトのプロパティ名です。 上記の構文で、parameters は次のどの形式で指定してもかまいません。 引数なし:今日の日付と時刻を作成する。例えば、today = new Date()。 次の形式 "月 日, 年 時 分 秒" で日付を表した文字列。例えば、Xmas95 = new Date("December 25, 1995 13 30 00")。時、分、または秒を省略するとその値はゼロにセットされる。 年、月、日を表す整数値のセット。例えば、Xmas95 = new Date(1995,11,25)。 年、月、日、時、分、秒を表す整数値のセット。例えば、Xmas95 = new Date(1995,11,25,9,30,0)。 JavaScript 1.2 以前 Date オブジェクトは次のように振る舞います。 1970 年より前の日付は許されない。 JavaScript はプラットフォーム特有の日付の便宜や挙動に依存する。つまり、Date オブジェクトの挙動はプラットフォームごとに異なる。 Date オブジェクトのメソッド Date オブジェクトの日付や時刻を扱うメソッドは、大まかに次のカテゴリに分けることができます。 "set" メソッド:日付や時刻の値を Date オブジェクトにセットする。 "get" メソッド:Date オブジェクトから日付や時刻の値を取得する。 "to" メソッド:Date オブジェクトから文字列の値を返す。 parse および UTC メソッド:Date 文字列をパースする。 "get" および "set" メソッドを用いることで、秒、分、時、日にち、曜日、月、年を別々に取得したりセットしたりすることができます。曜日を返す getDay メソッドというものがありますが、これに対応する setDay メソッドというものはありません。なぜならば、曜日は自動的にセットされるからです。これらのメソッドはこれらの値を表すのに整数を用います。 秒および分:0 から 59 時:0 から 23 曜日:0(日曜)から 6(土曜) 日にち:1 から 31 月:0(1 月)から 11(12 月) 年:1900 年から数えた年 例えば、次の日付を定義したとします。 Xmas95 = new Date("December 25, 1995") すると、Xmas95.getMonth() は 11 を返し、Xmas95.getFullYear() は 1995 を返します。 getTime メソッドや setTime メソッドは日付を比較するのに便利です。getTime メソッドは 1970 年 1 月 1 日 00 00 00 からのミリ秒数を返します。 例えば、次のコードはその年の残りの日数を表示します。 today = new Date() endYear = new Date(1995,11,31,23,59,59,999) // 日と月をセット endYear.setFullYear(today.getFullYear()) // 今年が何年かをセット msPerDay = 24 * 60 * 60 * 1000 // 1 日のミリ秒数をセット daysLeft = (endYear.getTime() - today.getTime()) / msPerDay daysLeft = Math.round(daysLeft) // その年の残り日数を返す この例では今日の日付を保持する today という名前の Date オブジェクトを作成します。そして endYear という名前の Date オブジェクトを作成し、その年が何年かという値をセットします。さらに、1 日のミリ秒数を用いて今日と endYear の間の日数を算出します。これには getTime を使用し、さらに全体の日数に丸めます。 parse メソッドは、日付を表す文字列から既存の Date オブジェクトに値を代入するのに便利です。例えば、次のコードは parse と setTime を用いて日付の値を IPOdate オブジェクトに代入します。 IPOdate = new Date() IPOdate.setTime(Date.parse("Aug 9, 1995")) Date オブジェクトの使用例 次の例では、関数 JSClock() はデジタル時計のような形式で時刻を返します。 function JSClock() { var time = new Date() var hour = time.getHours() var minute = time.getMinutes() var second = time.getSeconds() var temp = "" + ((hour 12) ? hour - 12 hour) if (hour == 0) temp = "12"; temp += ((minute 10) ? " 0" " ") + minute temp += ((second 10) ? " 0" " ") + second temp += (hour = 12) ? " P.M." " A.M." return temp } JSClock 関数はまず time という新しい Date オブジェクトを作成します。引数は与えられないため、現在の日付と時刻から time が作成されます。そして getHours、getMinutes および getSeconds メソッドを呼び出し、現在の時間、分、秒の値を hour、minute、second にそれぞれ代入します。 その次の 4 つの文はその時刻を元に文字列の値を構築します。最初の文は変数 temp を作成し、それに条件式を用いて値を代入します。hour が 12 よりも大きい場合は (hour - 12) を、それ以外の場合は単純に hour をそれぞれ代入します。ただし hour が 0 の場合は 12 とします。 その次の文は minute の値を temp に付け加えます。minute の値が 10 より小さい場合、条件式は区切りのコロンと分の先頭のゼロを追加し、そうでない場合は区切りのコロンだけを追加します。そして同様にして秒の値を temp に付け加えます。 最後に、条件式は hour が 12 以上の場合は "PM" を、そうでない場合は "AM" をそれぞれ temp に付け加えます。 Function オブジェクト 定義済みの Function オブジェクトは、関数としてコンパイルさせたい JavaScript コードの文字列を指定します。 Function オブジェクトを作成するには次のようにします。 functionObjectName = new Function ([arg1, arg2, ... argn], functionBody) functionObjectName は変数名または既存のオブジェクトのプロパティ名です。オブジェクトに小文字のイベントハンドラ名を続けて、window.onerror のようにして指定することもできます。 arg1, arg2, ... argn は関数が仮引数名として使用する引数です。それぞれが JavaScript の識別子として妥当な文字列である必要があります。例えば、"x" や "theForm" などです。 functionBody は関数の本体としてコンパイルさせたい JavaScript コードを表す文字列です。 Function オブジェクトはそれが使用されるたびに評価されます。これは関数を宣言し、それをコード内で呼び出す方法よりも非効率的です。宣言された関数はコンパイルされるからです。 ここで説明した関数の定義方法に加えて、function 文と関数式を用いることもできます。詳しくは コア JavaScript 1.5 リファレンス を参照してください。 次のコードは関数を変数 setBGColor に代入します。この関数は開いている文書の背景色をセットします。 var setBGColor = new Function("document.bgColor= antiquewhite ") Function オブジェクトを呼び出すには、それがあたかも関数であるかのように変数名を指定すればいいのです。次のコードは setBGColor 変数で指定された関数を実行します。 var colorChoice="antiquewhite" if (colorChoice=="antiquewhite") {setBGColor()} 次のどちらかの方法を使用することでイベントハンドラに関数を代入することができます。 1. document.form1.colorButton.onclick=setBGColor 2. INPUT NAME="colorButton" TYPE="button" VALUE="Change background color" onClick="setBGColor()" 上記の変数 setBGColor を作成することは次の関数を宣言することと同じようなことです。 function setBGColor() { document.bgColor= antiquewhite } 関数を変数に代入することは関数を宣言することと似ていますが、異なる点もあります。 var setBGColor = new Function("...") のようにして関数を変数に代入すると、setBGColor は new Function() を用いて作成した関数への参照がその値であるような変数になります。 function setBGColor() {...} のようにして関数を作成すると、setBGColor は変数ではなく関数の名前になります。 関数を関数の中に入れ子にすることができます。内側の関数は外側の関数に対してプライベートになります。 内側の関数には外側の関数の文からしかアクセスできません。 内側の関数は外側の関数の引数や変数を使用できます。外側の関数は内側の関数の引数や変数を使用できません。 Math オブジェクト 定義済みの Math オブジェクトには数学的な定数や関数を実現するプロパティやメソッドがあります。例えば、Math オブジェクトの PI プロパティは円周率の値 (3.141...) を表します。これはアプリケーションでは次のように使用します。 Math.PI 同様に、標準的な数学関数が Math のメソッドになっています。これは三角関数、対数関数、指数関数などがあります。例えば、三角関数のサインを使用したい場合は次のように書きます。 Math.sin(1.56) Math の三角関数のメソッドはすべてラジアンの引数をとります。 次の表で Math オブジェクトのメソッドを簡単に説明します。 メソッド 説明 abs 絶対値 sin, cos, tan 標準的な三角関数。引数はラジアン acos, asin, atan, atan2 逆三角関数。ラジアンの値を返す exp, log 指数関数と自然対数。底は e ceil 引数以上の整数のうち、最小のものを返す floor 引数以下の整数のうち、最大のものを返す min, max 2 つの引数のうち、大きいもの、小さいものをそれぞれ返す pow 累乗。第 1 引数は底、第 2 引数は指数 random 0 から 1 までの乱数を返す round 引数を直近の整数に丸める sqrt 平方根 他の多くのオブジェクトとは異なり、決して自分用の Math オブジェクトを作成してはいけません。常に定義済みの Math オブジェクトを使用してください。 Number オブジェクト Number には、最大値、非数、無限大といった数値定数を表すプロパティがあります。これらのプロパティの値を変更することはできません。これらは次のように使用します。 biggestNum = Number.MAX_VALUE smallestNum = Number.MIN_VALUE infiniteNum = Number.POSITIVE_INFINITY negInfiniteNum = Number.NEGATIVE_INFINITY notANum = Number.NaN 常に上記のようにして定義済みの Number オブジェクトのプロパティを参照します。自分で作成した Number オブジェクトのプロパティとして参照するのではありません。 次の表では Number オブジェクトのプロパティについて簡単に説明します。 プロパティ 説明 MAX_VALUE 最大の表現可能な値 MIN_VALUE 最小の表現可能な値 NaN 特殊な "not a number"(非数)の値 NEGATIVE_INFINITY 特殊な負の無限大。オーバフロー時に返される POSITIVE_INFINITY 特殊な正の無限大。オーバフロー時に返される Number のプロトタイプは Number オブジェクトから情報を様々な形で取り出すメソッドを備えています。次の表では Number.prototype のメソッドについて簡単に説明します。 メソッド 説明 toExponential 数値を指数表示の文字列にして返す toFixed 数値を固定小数点表示の文字列にして返す toPrecision 数値を指定した精度の固定小数点表示の文字列にして返す toSource 指定した Number オブジェクトをオブジェクトリテラルにして返す。この値を利用して新しいオブジェクトを作成できる。Object.toSource メソッドを上書きする toString 指定したオブジェクトを文字列にして返す。Object.toString メソッドを上書きする valueOf 指定したオブジェクトのプリミティブ値を返す。Object.valueOf メソッドを上書きする RegExp オブジェクト RegExp オブジェクトを用いることで正規表現が使用できるようになります。これは第 4 章の 正規表現 で説明しています String オブジェクト String オブジェクトにはプロパティが 1 つあります。それは length で、これは文字列中の文字の数を表します。例えば、次のコードは x に 13 という値を代入します。"Hello, World!" は 13 文字だからです。 mystring = "Hello, World!" x = mystring.length String オブジェクトには 2 種類のメソッドがあります。これは、substring や toUpperCase のような、その文字列そのものを変形させたものを返すものと、bold や link のような、その文字列を HTML として整形したものを返すものです。 例えば先の例を流用すると、mystring.toUpperCase() も "hello, world!".toUpperCase() も、"HELLO, WORLD!" という文字列を返します。 substring メソッドは 2 つの引数をとり、その 2 つの引数の間の文字列のサブセットを返します。先の例を流用すると、mystring.substring(4, 9) は "o, Wo" という文字列を返します。詳しくは コア JavaScript リファレンス の String オブジェクトの substring メソッドを参照してください。 String には自動的に HTML に整形するメソッドも多くあります。これは太字のテキストを生成する bold や、ハイパーリンクを生成する link などがあります。例えば、link メソッドを用いてある架空の URL へのハイパーリンクを作成するには次のようにします。 mystring.link("http //www.helloworld.com") 次の表で String オブジェクトのメソッドについて簡単に説明します。 メソッド 説明 |anchorHTML の名前付きアンカを作成する。 |big, blink, bold, fixed, italics, small, strike, sub, supHTML の整形済み文字列を作成する。 |charAt, charCodeAt文字列中の指定した位置の文字または文字コードを返す。 indexOf, lastIndexOf 文字列中の指定した部分文字列の位置や指定した部分文字列の最後の位置をそれぞれ返す link HTML のハイパーリンクを作成する concat 2 つの文字列を連結し、新しい文字列を返す fromCharCode 指定した Unicode 値の連続から文字列を構成する。これは String クラスのメソッドであり、String インスタンスのものではない |split|String オブジェクトを文字列の配列に分配する。文字列を部分文字列に分割することで行う。 |slice|文字列から一部分を抽出し、新しい文字列を返す。 substring, substr 文字列の指定したサブセットを返す。開始および終了のインデックス、または開始のインデックスおよび長さのいずれかを指定する match, replace, search 正規表現を取り扱う toLowerCase, toUpperCase 文字列をすべて小文字に、またはすべて大文字にしてそれぞれ返す 文字列リテラルは String オブジェクトとは別物 String オブジェクトは文字列のプリミティブデータ型のラッパです。文字列リテラルと String オブジェクトを混同してはいけません。例えば、次のコードでは文字列リテラルの s1 と String オブジェクトの s2 を作成します。 s1 = "foo" // 文字列リテラルの値を作成 s2 = new String("foo") // String オブジェクトを作成 文字列リテラルの値でなら、String オブジェクトのどんなメソッドでも呼び出すことができます。JavaScript が自動的に文字列リテラルを一時的な String オブジェクトに変換し、メソッドを呼び出し、その一時的な String オブジェクトを破棄するのです。String.length プロパティを文字列リテラルで使うこともできます。 特に String オブジェクトを使う必要がない場合は文字列リテラルを使うようにしてください。String オブジェクトは直観的ではない挙動をとることがあるからです。次の例をご覧ください。 s1 = "2 + 2" // 文字列リテラルの値を作成 s2 = new String("2 + 2")// String オブジェクトを作成 eval(s1) // 数値 4 を返す eval(s2) // 文字列 "2 + 2" を返す
https://w.atwiki.jp/0x0b/pages/62.html
Array オブジェクト Array オブジェクトはプロパティ名のクラスに特別な扱いを与える。プロパティ名 P (文字列値形式) は、ToString(ToUint32(P)) と P が等しく、かつ ToUint32(P) と 232-1 が等しくない場合、配列のインデックスであり、かつこの場合に限られる。各 Array オブジェクトは length プロパティを持ち、その値は常に 232 未満の負でない整数\である。length プロパティの値は配列のインデックスである各プロパティ名よりも数値的に大きい; Array オブジェクトのプロパティが作成または変更されるときは、他のプロパティがこの不変を維持する必要からいつでも調整される。特別に、配列のインデックスのプロパティが追加されるときはいつでも、length プロパティは変更され、必要であれば、配列のインデックスの数値的な値より大きくなる; そして length プロパティが変更されるといつでも、新しい length 以上の値の配列インデックスの各プロパティは自動的に削除される。この制約は Array オブジェクト自身のプロパティにのみ適用され、length やその prototype から継承されうる配列インデックスプロパティによっては影響されない。 関数として呼出される Array コンストラクタ Array がコンストラクタとしてではなく関数として呼出されるならば、新規に Array オブジェクトを生成して初期化する。関数呼出し Array(...) は、同じ引数を持つオブジェクト生成式 new Array(...) と等価である。 Array ( [ item1 [ , item2 [ , ... ] ] ] ) Array 関数が呼出されると、次のステップが取られる 同じ引数\で Array コンストラクタを呼出す(Array コンストラクタ)のと全く同様に、新規 Array オブジェクトを生成して返す。 Array コンストラクタ Array が new 式の一部として呼出されるとき、それはコンストラクタである; 新規に生成したオブジェクトを初期化する。 new Array ( [ item0 [ , item1 [ , ... ] ] ] ) この説明は、引数を与えられないか、 2 つ以上与えられる Array コンストラクタに適用する。 新規に構築されたオブジェクトの Prototype プロパティは、 Array.prototype の初期値 (せくしょん 15.4.3.1) である、オリジナルの Array プロトタイプオブジェクトに設定される。 新規に構築されたオブジェクトの Class プロパティは、 "Array" に設定される。新規に構築されたオブジェクトの length プロパティは、引数の数に設定される。 新規に構築されたオブジェクトの 0 プロパティは、 (供給された) item0 に設定される; 新規に構築されたオブジェクトの 1 プロパティは、(もし供給されれば) item1 に設定される; そして、一般に、そこにあるのと同じだけの引数に対して、新規に構築されたオブジェクトの k プロパティは、第一引数を引数番号 0 と考えて引数 k に設定される。 new Array (len) 新規に構築されるオブジェクトの Prototype プロパティは、Array.prototype(Array.prototype)の初期値である、オリジナルの Array プロトタイプオブジェクトに設定される。新規に構築されるオブジェクトの Class プロパティは "Array" に設定される。 引数 len が Number で、かつ ToUint32(len) が len と等しければ、新規に構築されるオブジェクトの length プロパティは、 ToUint32(len) に設定される。引数 len が Number で、かつ ToUint32(len) か len と等しくなければ、例外 RangeError が投げられる。 引数 len が Number でなければ、新規に構築されるオブジェクトの length プロパティは 1 に設定され、新規に構築されるオブジェクトの 0 プロパティは、 len に設定される。 Array コンストラクタのプロパティ Array コンストラクタの内部 Prototype プロパティの値は、 Function プロトタイプオブジェクト 内部プロパティ及び length プロパティ (値は 1 ) の他に、Array コンストラクタは次のプロパティを持つ Array.prototype Array.prototype の初期値は Array プロトタイプオブジェクト(プロトタイプオブジェクトのプロパティ )である Array プロトタイプオブジェクトのプロパティ Array プロトタイプオブジェクトの内部 Prototype プロパティの値は、 Object プロトタイプオブジェクト Array プロトタイプオブジェクトはそれ自身が配列である; その Class は "Array" で、 length プロパティ (初期値は +0) とセクション 15.4.5.1 に述べる特殊な内部 Put メソッドを持つ。 プロトタイプオブジェクトのプロパティである関数の説明において、以降フレーズ "このオブジェクト" は関数実施の this 値であるオブジェクトを参照する。内部 Class プロパティの値が "Array" でないオブジェクトであることが this に許可される。 NOTE Array プロトタイプオブジェクトは独自の valueOf プロパティを持たない; だが、 valueOf プロパティを Object プロトタイプオブジェクトから継承する。 Array.prototype.constructor Array.prototype.constructor の初期値は、組込み Array コンストラクタである。 Array.prototype.toString ( ) この関数の呼び出しの結果は、このオブジェクトに組込み join メソッドを引数無しで呼出すのと同様である。 toString 関数は汎用的ではない; this 値が Array オブジェクトでなければ、例外 TypeError を投げる。それゆえ、他の種類のオブジェクトにメソッドとして転用できない。 Array.prototype.toLocaleString ( ) 配列要素は toLocaleString メソッドで文字列に変換され、それらの文字列は連結され、実装が定義するロケール特定の方法で引き出される分離子文字列で分離される。この関数の呼出しの結果は、 toString の結果に類似することが意図されるが、この関数の結果はロケール特定であることが意図される。 結果は次のように計算される toLocaleString 関数は汎用的ではない; this 値が Array オブジェクトでなければ、例外 TypeError を投げる。 それゆえ、他の種類のオブジェクトにメソッドとして転用できない。 NOTE この関数の第一パラメータは、この標準の将来のバージョンで使用される可能性がある; 実装はこのパラメータを他の用途に使用しないことを推奨する。 Array.prototype.concat ( [ item1 [ , item2 [ , ... ] ] ] ) concat メソッドが 0 個以上の引数 item1, item2, etc. で呼出されると、順に各引数の配列要素が続く、オブジェクトの配列要素で構成される配列を返す。 concat メソッドの length プロパティは 1 である。 NOTE concat 関数は故意にに汎用的である; this 値が Array オブジェクトであることを要求されない。それゆえ、他の種類のオブジェクトにメソッドとして転用可能である。 concat 関数が host オブジェクトにうまく適用できるかどうかは、実装依存である。 Array.prototype.join (separator) 配列要素は文字列に変換され、文字列は連結され、 separator で分離される。 separator が提供されないならば、 1 つのカンマが separator に用いられる。 join メソッドは引数 separator をとる join メソッドの length プロパティは 1 である。 NOTE join 関数は故意に汎用的である; this 値が Array オブジェクトであることを要求されない。それゆえ、他の種類のオブジェクトにメソッドとして転用可能である。 join 関数が host オブジェクトにうまく適用できるかどうかは、実装依存である。 Array.prototype.pop ( ) 配列の最後の要素が配列から取り除かれ、返される。 NOTE pop 関数は故意にに汎用的である; this 値が Array オブジェクトであることを要求されない。それゆえ、他の種類のオブジェクトにメソッドとして転用可能である。 pop 関数が host オブジェクトにうまく適用できるかどうかは、実装依存である。 Array.prototype.push ( [ item1 [ , item2 [ , ... ] ] ] ) 引数が出現した順に配列の末尾に追加される。呼出しの結果として、新しい配列の長さが返される。 push メソッドが 0 個以上の引数 item1, item2, etc. で呼出されると、次のステップが取られる push メソッドの length プロパティは 1 である。 NOTE push 関数は故意にに汎用的である; this 値が Array オブジェクトであることを要求されない。それゆえ、他の種類のオブジェクトにメソッドとして転用可能である。 pust 関数が host オブジェクトにうまく適用できるかどうかは、実装依存である。 Array.prototype.reverse ( ) 配列要素は順序を逆に再編される。呼出しの結果としてオブジェクトが返される。 NOTE reverse 関数は故意にに汎用的である; this 値が Array オブジェクトであることを要求されない。それゆえ、他の種類のオブジェクトにメソッドとして転用可能である。 reverse 関数が host オブジェクトにうまく適用できるかどうかは、実装依存である。 Array.prototype.shift ( ) 配列の最初の要素が配列から取り除かれ、返される。 NOTE shift 関数は故意にに汎用的である; this 値が Array オブジェクトであることを要求されない。それゆえ、他の種類のオブジェクトにメソッドとして転用可能である。 shift 関数が host オブジェクトにうまく適用できるかどうかは、実装依存である。 Array.prototype.slice (start, end) slice メソッドは 2 つの引数、 start と end をとり、要素 start から要素 end の前まで (または、 end が undefined ならば配列の末尾まで) の配列要素で構成される配列を返す。 start が負ならば、 length を配列の長さとして、(length+start) として扱われる。 end が負ならば、length を配列の長さとして (length+end) として扱われる。 次のステップが取られる slice メソッドの length プロパティは 2 である。 NOTE slice 関数は故意にに汎用的である; this 値が Array オブジェクトであることを要求されない。それゆえ、他の種類のオブジェクトにメソッドとして転用可能である。 slice 関数が host オブジェクトにうまく適用できるかどうかは、実装依存である。 Array.prototype.sort (comparefn) 配列要素はソート (並べ替え) される。ソートは必ずしも安定的ではない(つまり、等価と比較された要素が元の順で残るとは限らない). comparefn が undefined でないならば、それは 2 個の引数 x と y を受け付け、 x y ならば負の値、 x = y ならば 0、 x y ならば正の値を返す関数であるべきである。 comparefn が undefined でなく、かつ この配列の要素について首尾一貫した比較関数 (下記参照) でない場合、 ソートの振る舞いは実装依存である。 len を ToUint32(this.length) とする。下記の全条件を満たす整数 i 及び j と オブジェクト P が存在する場合、ソートの振る舞いは実装依存である 返されるオブジェクトは、次の 2 個のプロパティを持たなければならない。 ここでは、表記 old[j] でこの関数の実行前のこのオブジェクトの Get メソッドの引数 j での呼出しの仮の結果を参照し、 表記 new[j] でこの関数の実行後のこのオブジェクトの Get メソッドの引数 j での呼出しの仮の結果を参照する。 下記の必要条件の全てが集合 S 内の値 a, b, c (または同じ値) 全てについて満たされる場合、値の集合 S について関数 comparefn は首尾一貫した比較関数である 記法 CF b は comparefn(a,b) 0 を意味する; a =CF b は comparefn(a,b) = 0 (of either sign) を意味する; a CF b は comparefn(a,b) 0 を意味する。 NOTE 上の条件は、 comparefn が集合 S を等価な種別に分割し、その等価な種別が全く整然としているのを保証にするのに、必要かつ十分である。 SortCompare 演算子が 2 個の引数 j と k で呼出されると、次のステップが取られる NOTE 存在しないプロパティの値は、常に undefined プロパティ値より大きく比較し、 undefined は他の値よりも大きいと比較するため、 undefined プロパティ値は常に結果の末尾にソートし、存在しないプロパティの値が続く。 NOTE sort 関数は故意にに汎用的である; this 値が Array オブジェクトであることを要求されない。それゆえ、他の種類のオブジェクトにメソッドとして転用可能である。 sort 関数が host オブジェクトにうまく適用できるかどうかは、実装依存である。 Array.prototype.splice (start, deleteCount [ , item1 [ , item2 [ , ... ] ] ] ) splice メソッドが 2 個以上の引数 start, deleteCount, そして(選択的に) item1, item2, etc. で呼出されると、配列の添え字 start から始まる deleteCount 個の配列要素が、引数 item1, item2, etc で置換される。次のステップが取られる splice メソッドの length プロパティは 2 である。 NOTE splice 関数は故意にに汎用的である; this 値が Array オブジェクトであることを要求されない。それゆえ、他の種類のオブジェクトにメソッドとして転用可能である。 splice 関数が host オブジェクトにうまく適用できるかどうかは、実装依存である。 Array.prototype.unshift ( [ item1 [ , item2 [ , ... ] ] ] ) 配列内の順所が引数リスト内に出現順と同じになるように、引数が配列の先頭に prepend される。 unshift メソッドが 0 個以上の引数 item1, item2, etc. で呼出されると、次のステップが取られる unshift メソッドの length プロパティは 1 である。 NOTE unshift 関数は故意にに汎用的である; this 値が Array オブジェクトであることを要求されない。それゆえ、他の種類のオブジェクトにメソッドとして転用可能である。 unshift 関数が host オブジェクトにうまく適用できるかどうかは、実装依存である。 Array インスタンスのプロパティ Array インスタンスは、 Array プロトタイプオブジェクトからプロパティを継承し、そして次のプロパティも持つ。 Put (P, V) Array オブジェクトは変化した Put メソッドを用いて他の Native ECMAScript オブジェクトのために使用される。 A を Array オブジェクト、 P を文字列と想定する。 A の Put メソッドが、プロパティ P と値 V で呼出されるとき、次のステップが取られる length Array オブジェクトの length プロパティは、配列の添え字を名前とする各プロパティの名前より、常に数値的に大きい。 length プロパティは属性 { DontEnum, DontDelete } を持つ。