トップ 一覧 ping 検索 ヘルプ RSS ログイン

初めてのJavaScript(基本)の変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
!!!初めてのJavaScript(基本)
{{amazon 4873113229}}

http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Reference

!!データ型と変数
!スコープ
*varをつけると、関数内で有効。つけないとグローバルとなる。
*varをつけても、ブロックレベルの変数にはならない。
!単純なデータ型
*JavaScriptには、以下の3つの単純なデータ型しかない
,型,内容
,string,文字列
,numeric,数値
,boolean,真偽値
*一方で、[[String、Number、Boolean|JavaScript 組み込みオブジェクト(Number,String,RegExp,Date,Math)]]という組み込みオブジェクトも存在する。
!nullとundefined
*nullは定義がされたが、値が設定されていない状態
*undefinedは宣言されたが、初期化されていない状態
!定数
*キーワード const を利用すると、定数になる
*IE7.0は対応していない?

!!演算子と文
!演算子
,演算子,意味
,+,加算
,-,減算
,*,乗算
,/,除算
,%,剰余
,++,インクリメント
,--,デクリメント
!ビット演算子
,演算子,意味
,&,ビット論理積(AND)
,|,ビット論理和(OR)
,^,ビット排他的論理和(XOR)
,~,ビット否定(NOT)
,<<,左シフト
,>>,符号付右シフト
,>>>,符号なし右シフト

 newValue = oldValue << 1; '左に1ビットシフト
!条件文
::if、if else
 if (式) {
   ・・・
 }

 if (式) {
   ・・・
 } else {
   ・・・
 }
::switch
 switch (式) {
 case ラベル1:
   ・・・
   break;
 case ラベルn:
   ・・・
   break;
 default:  
   ・・・
 }
!等値演算子

*「==」等値演算子
*「!=」 不等値演算子

*データ型を変換する->2つの変数が数値と文字列の場合、数値を文字列に置き換えてから比較する。

 alert(("1.0" == 1)); // 結果は true

*「===」同値演算子 または 厳密等価演算子
*「!==」厳密不等価演算子

*値とデータ型の両方が等しいときだけ結果が真
*JavaScript1.3から
 alert(("1.0" === 1)); // 結果は false
 alert((1.0 === 1.0)); // 結果は true
 alert(((new Number(1.0)) === (new Number(1.0)))); // 結果は false
 var num1 = new Number(1.0);
 var num2 = num1;
 alert((num1 === num2)); // 結果は true

!比較演算子
,演算子,内容
,>,左が右より大きい
,>=,左が右以上
,<,左が右より小さい
,<=,左が右以下

!三項演算子

*条件 ? 真のときの値 : 偽の時の値;
 
 var isAdult = (age >= 20)? true : false;

!論理演算子

,演算子,内容
,&&,論理積演算子 両辺が真の時のみ真 左辺が偽の時右辺は評価されない
,||,論理和演算子 両辺の何れかが真の場合真 左辺が真の場合右辺は評価されない

!繰り返し

::while
*条件が真の間繰り返し
 while (条件) {
   ・・・
 }
::do while
*条件が真の間繰り返し
*条件を満たさなくても、1回処理される
 do {
  ・・・
 } while (条件)
::for
 for (初期値設定; 条件; 更新) {
   ・・・
 }
::for in
==配列の要素を取り出す==
 for (変数名 in 配列) {
   ・・・
 }
※ for in を利用してもビルトインのプロパティ(String.indexOf、Object.toString)は取得できないが、ユーザが定義したプロパティは取得される。

→ 配列の要素取得に利用すべきではない!

 // 例
 function test() {
     var s = ['a','b'];
     var s = ['a', 'b'];
     s.foo = "foo";
     s.bar = function() {
         alert("bar");
     };
     var i=0;
     for (p in s) {
         document.write(p + "<br>");
         document.write(p + " : " + s[p] + "<br>");
     }
 }
 // 結果
 0      //<-そもそも配列の要素は取れない
 1
 foo    //<-ユーザ定義プロパティも取得される
 bar
 0 : a
 1 : b
 foo : foo
 bar : function() { alert("bar"); }

documentのプロパティを列挙
 var win = window.open("","_blank");
 for (elm in document) {
   win.document.write(elm + "<br>");
 }
 win.document.close();
条件判定にも利用できる(linkColor プロパティがdocumentオブジェクトに存在するか)
 alert(("linkColor" in document)); // true

----