atwiki-logo
  • 新規作成
    • 新規ページ作成
    • 新規ページ作成(その他)
      • このページをコピーして新規ページ作成
      • このウィキ内の別ページをコピーして新規ページ作成
      • このページの子ページを作成
    • 新規ウィキ作成
  • 編集
    • ページ編集
    • ページ編集(簡易版)
    • ページ名変更
    • メニュー非表示でページ編集
    • ページの閲覧/編集権限変更
    • ページの編集モード変更
    • このページにファイルをアップロード
    • メニューを編集
    • 右メニューを編集
  • バージョン管理
    • 最新版変更点(差分)
    • 編集履歴(バックアップ)
    • アップロードファイル履歴
    • このページの操作履歴
    • このウィキのページ操作履歴
  • ページ一覧
    • ページ一覧
    • このウィキのタグ一覧
    • このウィキのタグ(更新順)
    • おまかせページ移動
  • RSS
    • このウィキの更新情報RSS
    • このウィキ新着ページRSS
  • ヘルプ
    • ご利用ガイド
    • Wiki初心者向けガイド(基本操作)
    • このウィキの管理者に連絡
    • 運営会社に連絡(不具合、障害など)
ページ検索 メニュー
オチャメモ
  • 広告なしオファー
  • ウィキ募集バナー
  • 目安箱バナー
  • 操作ガイド
  • 新規作成
  • 編集する
  • 全ページ一覧
  • 登録/ログイン
広告非表示(β版)
ページ一覧
オチャメモ
  • 広告なしオファー
  • ウィキ募集バナー
  • 目安箱バナー
  • 操作ガイド
  • 新規作成
  • 編集する
  • 全ページ一覧
  • 登録/ログイン
ページ一覧
オチャメモ
広告非表示 広告非表示(β)版 ページ検索 ページ検索 メニュー メニュー
  • 新規作成
  • 編集する
  • 登録/ログイン
  • 管理メニュー
管理メニュー
  • 新規作成
    • 新規ページ作成
    • 新規ページ作成(その他)
      • このページをコピーして新規ページ作成
      • このウィキ内の別ページをコピーして新規ページ作成
      • このページの子ページを作成
    • 新規ウィキ作成
  • 編集
    • ページ編集
    • ページ編集(簡易版)
    • ページ名変更
    • メニュー非表示でページ編集
    • ページの閲覧/編集権限変更
    • ページの編集モード変更
    • このページにファイルをアップロード
    • メニューを編集
    • 右メニューを編集
  • バージョン管理
    • 最新版変更点(差分)
    • 編集履歴(バックアップ)
    • アップロードファイル履歴
    • このページの操作履歴
    • このウィキのページ操作履歴
  • ページ一覧
    • このウィキの全ページ一覧
    • このウィキのタグ一覧
    • このウィキのタグ一覧(更新順)
    • このページの全コメント一覧
    • このウィキの全コメント一覧
    • おまかせページ移動
  • RSS
    • このwikiの更新情報RSS
    • このwikiの新着ページRSS
  • ヘルプ
    • ご利用ガイド
    • Wiki初心者向けガイド(基本操作)
    • このウィキの管理者に連絡
    • 運営会社に連絡する(不具合、障害など)
  • atwiki
  • オチャメモ
  • JavaScript-勉強会

オチャメモ

JavaScript-勉強会

最終更新:2008年08月24日 10:47

ochamemo

- view
だれでも歓迎! 編集

はじめに

自分もなんとなくjavascripを扱ってきたくちで、そろそろjavascriptを本格的にやろうかなと。 この資料も昨日やっつけでつくったものなのでつっこみどころも多いです。

javascriptってなに?

  • 名前について
    • java とはまったく関係ない。
    • nestscape者がjavaのブームにのっただけ。
    • もともとはLivescriptという名前。
    • 現在はECMAScriptという名称で標準化されている。
  • 簡単に始められる!
  • メモ帳とブラウザでできる!
    javascript:alert("aaa")
    
  • 軽く見られがちだけど実は奥が深い!
  • ライブラリ
    • 現在多くのライブラリが普及しているが、文法がなんだかそれぞれによって違う。
    • 普及してるのはPrototype.jsというライブラリ。このソースの中に多くのクラスが含まれている。とりあえずソースを読むのが一番理解を深めるらしい。
    • でもソース読むにしても基本がわからないと!
    • 基本的なことを理解してないとモヤモヤ感がなくならず、なんとなく使うことになる。
    • そこでこの本!→]

関数の作り方

これだけです。

function hoge() {
  alert('hello!')
} 
hoge(); // 'hello!'

無名関数というのもあります。

var hoge = function () {
  alert('hello!')
};
hoge(); // 'hello!'
var fuga = hoge;
huga(); // 'hello!'

変数

いきなり代入。これはグローバル変数となる。

hoge = 0;

ローカルは?

x = 0;
function hoge() {
  var x = 1; // varを宣言
  alert(x); // 1
}
alert(x); // 0

上書き注意!

x = 0;
function hoge() {
  x = 1;
  alert(x); // 1
}
alert(x); //  1が表示。

varを宣言しないと、グローバル変数とみなされる。

クラス定義はどうする?

コンストラクタを定義すればよい。コンストラクタとは関数定義のこと。

function Hoge(){};

で、これをnewしたらHogeオブジェクトのできあがり

var hoge = new Hoge();

フィールドを定義したい場合は以下のようにthisをつけて代入すればよい

var Hoge = function(){
  this.field1 = 0;
  this.field2 = 'hoge';
};

メソッドはこんな感じ。

var Hoge = function(){
  this.field1 = 0;
  this.mehod = function() {alert('fugaga!');}
};

↑でもこれだとメモリ効率が悪いよ。そこでプロトタイプ

Hoge.prototyep.method =  function() {alert('fugaga!');}

クラスメソッドは?

Hoge.classMethod = function() {alert('classMethod!');}

クラス変数は?

Hoge.classProperty = 'HOGE';

で最終的にはこうなる。

var Hoge = function(){
  this.field1 = 0;
  this.field2 = 'hoge';
}
Hoge.prototyep.method =  function() {alert('fugaga!');}
Hoge.classMethod = function() {alert('classMethod!');}
Hoge.classProperty = 'HOGE';

このようにjavascriptでの定義は、最初にまとめて定義するのではなく、実行しながらプロパティを増やしていき、少しづつ肉付けしながら定義する。
いうなれば、雪だるまを転がしながらどんどん機能を追加していくような感じ。

プロトタイプってなに?

  • 雛形となるオブジェクトインスタンスのこと。
  • ようするにプロトタイプとはjavaでいうインスタンス(多分)。
    -プロトタイプベースオブジェクト指向とはつまりインスタンスベースクラス指向のこと。
    -javaのようにクラスの雛形をもとに静的にクラスを生成するのではなく、インスタンスをベースにクラスを量産するというイメージ。

プロトタイプの仕組み(プロトタイプチェーン)

  1. コンストラクトした時点では、prototypeは通常、ただの空オブジェクト。
  2. まずオブジェクト自身のプロパティから、該当のプロパティ名を探索
  3. なかった場合、オブジェクトのprototypeオブジェクトのプロパティの中から該当する名前のプロパティを探す。
  4. それでもなければ、そのプロトタイプオブジェクトのprototypeから探索する。
  5. 最終的になにもプロパティを持たないprototypeになるまでこれを繰り返す。
  6. 見つからなければ、そこで代入になる。参照だったらundefinedのエラーになる
  7. これがプロトタイプチェーン。
    この仕組みを利用してクラスの継承が行われるのだけど、ちょっと複雑なので今回は割愛。

実はなんでもハッシュ

javascriptのオブジェクトはハッシュ(連想配列)で表現できる

image.width;
image.height;
image.draw();

これらのプロパティは、実は以下のようにアクセスできる!

image;
image;
image();

だから、こんな定義&呼び出しもできる。

var image = {width:100, height:100, disp:function(){alert("width:"+this.width)}};

実は、javascriptのオブジェクトとは連想配列なんです。

var o = new Object; 

これは下のように定義できるのです。なるほど!

var o = {};

ツールの紹介

alertで昔ながらのprintfデバッグでもいいけど、下記ツールを使ったほうが断然効率いいですよ。

  • FireFox
    • FireBug
      「firefox firebug」で検索
      
    • WebDeveloper
      「firefox webdeveloper」で検索
      
  • IE
    「InternetExplorer Developer」で検索
    
「JavaScript-勉強会」をウィキ内検索
LINE
シェア
Tweet
オチャメモ
記事メニュー

メニュー

  • Tips
  • まとめ
  • ハマリ
  • 本
  • その他
  • このwikiのページ一覧

リンク

  • ブログ
  • OCHAGL
  • Wiki文法

アクセス数

  • 本日: -
  • 昨日: -
  • 全体: -


ここを編集
記事メニュー2

更新履歴

取得中です。


ここを編集
人気記事ランキング
  1. Emacs-ハマリ
  2. 羊たちはもう沈黙しない
  3. Perl-Tips
もっと見る
最近更新されたページ
  • 6268日前

    C言語-まとめ
  • 6271日前

    Emacs-Tips
  • 6273日前

    Python-まとめ
  • 6275日前

    Python-Tips
  • 6276日前

    GoogleAppEngine-Tips
  • 6276日前

    VMWare-Tips
  • 6277日前

    Windows-Tips
  • 6277日前

    Linux-Tips
  • 6278日前

    Screen-Tips
  • 6279日前

    トップページ
もっと見る
「まとめ」関連ページ
  • PHP-まとめ
  • JavaScript-まとめ
  • C言語-まとめ
  • ActionScript-まとめ
人気記事ランキング
  1. Emacs-ハマリ
  2. 羊たちはもう沈黙しない
  3. Perl-Tips
もっと見る
最近更新されたページ
  • 6268日前

    C言語-まとめ
  • 6271日前

    Emacs-Tips
  • 6273日前

    Python-まとめ
  • 6275日前

    Python-Tips
  • 6276日前

    GoogleAppEngine-Tips
  • 6276日前

    VMWare-Tips
  • 6277日前

    Windows-Tips
  • 6277日前

    Linux-Tips
  • 6278日前

    Screen-Tips
  • 6279日前

    トップページ
もっと見る
ウィキ募集バナー
急上昇Wikiランキング

急上昇中のWikiランキングです。今注目を集めている話題をチェックしてみよう!

  1. 全裸でいかおどり@VIPPER支部
  2. 遊戯王DSNTナイトメアトラバドール攻略Wiki@わかな
  3. 異修羅非公式wiki
  4. ドラゴンクエスト モンスターバトルロードII攻略@WIKI
  5. ポケモン 作品なりきりネタWiki
  6. モンスター烈伝オレカバトル2@wiki
  7. シュガードール情報まとめウィキ
  8. EDF5:地球防衛軍5@Wiki
  9. アサルトリリィ wiki
  10. SDガンダム ジージェネレーションクロスレイズ 攻略Wiki
もっと見る
人気Wikiランキング

atwikiでよく見られているWikiのランキングです。新しい情報を発見してみよう!

  1. アニヲタWiki(仮)
  2. ゲームカタログ@Wiki ~名作からクソゲーまで~
  3. 初音ミク Wiki
  4. MADTOWNGTAまとめwiki
  5. ストグラ まとめ @ウィキ
  6. 機動戦士ガンダム バトルオペレーション2攻略Wiki 3rd Season
  7. 検索してはいけない言葉 @ ウィキ
  8. モンスター烈伝オレカバトル2@wiki
  9. Grand Theft Auto V(グランドセフトオート5)GTA5 & GTAオンライン 情報・攻略wiki
  10. 機動戦士ガンダム EXTREME VS.2 INFINITEBOOST wiki
もっと見る
新規Wikiランキング

最近作成されたWikiのアクセスランキングです。見るだけでなく加筆してみよう!

  1. MADTOWNGTAまとめwiki
  2. MadTown GTA (Beta) まとめウィキ
  3. 首都圏駅メロwiki
  4. まどドラ攻略wiki
  5. Last Z: Survival Shooter @ ウィキ
  6. シュガードール情報まとめウィキ
  7. ちいぽけ攻略
  8. ソニックレーシング クロスワールド 攻略@ ウィキ
  9. ステラソラwiki
  10. 駅のスピーカーwiki
もっと見る
全体ページランキング

最近アクセスの多かったページランキングです。話題のページを見に行こう!

  1. 参加者一覧 - MADTOWNGTAまとめwiki
  2. 【移転】Miss AV 見れない Missav.wsが見れない?!MissAV新URLはどこ?閉鎖・終了してない?missav.ai元気玉って何? - ホワイトハッカー研究所
  3. ブラック・マジシャン・ガール - アニヲタWiki(仮)
  4. XVI - MADTOWNGTAまとめwiki
  5. Z世代女子中学生のエロ動画だぉw - 全裸でいかおどり@VIPPER支部
  6. 真崎杏子 - 遊戯王DSNTナイトメアトラバドール攻略Wiki@わかな
  7. 魔獣トゲイラ - バトルロイヤルR+α ファンフィクション(二次創作など)総合wiki
  8. アキ・ローゼンタール - MADTOWNGTAまとめwiki
  9. angler - MADTOWNGTAまとめwiki
  10. つか山 天乃進 - ストグラ まとめ @ウィキ
もっと見る

  • このWikiのTOPへ
  • 全ページ一覧
  • アットウィキTOP
  • 利用規約
  • プライバシーポリシー

2019 AtWiki, Inc.