Skip navigation.

fox.tech

技術メモ

Posts tagged with "JavaScript"

〔JSメモ〕正規表現.パターンマッチング

,

*search()メソッド:一致する文字列の先頭文字位置を返す
var s = "JavaScript;
s.search(/script/i);
  //一致する文字列があれば最初の文字列の先頭の文字位置を返す
  //なければ-1を返す


*replace()メソッド:置換
s.replace(/javascript/g, "JavaScript");
 //g属性が指定されると一致文字列すべてを置換する


var s = "\"JacriptvaScri|\"ptscript"
alert(s.replace(/"([^"]*)/ig, "''$1''"));      //()で囲まれた中身が$1に入る


*match()メソッド:一致したすべての文字列を含む配列を返す

var sn = "1 and 22222 and 3";
alert(sn.match(/\d+/g));
 //結果は["1", "22222", "3"]
 //g属性がなければ最初の文字列だけを返す


*split()メソッド:指定した区切り文字で分割
"123,456,789".split(",");  //結果は["123","456","789"]
alert("1,2,   3   ,4 ,5,".split(/\s*,\s*/)); //任意の空白を前後に含む区切り文字の指定

〔JSメモ〕

Getahead::Javascript Versions
http://getahead.ltd.uk/technotes/JSVersions

There have been several revisions of Javascript/ECMAScript/JScript, and different versions have been deployed in different situations. This table details which versions relate to which browser.

〔JSメモ〕JavaScript文の種類と目的

// JavaScript文のまとめ

  • var:変数の宣言と初期化
    var 変数名 [ = 初期値];
  • break(break;):直近のループを抜ける
  • continue(continue;):ループの先頭に戻る
  • empty(;)
  • if/else:条件付き
  • for
    for (init; 判定文; increment) { statements }
  • for/in:オブジェクトのプロパティを調べる
    for (var in object){ statements }
      for (prop in my_object) { //オブジェクトのプロパティごとに名前お値を出力する
        document.write("プロパティ名: " + prop +"; 値: " + my_object[+prop+], "<br">);
      }

  • while:ループ
  • function:関数の宣言
    function 関数名( [arg1[, arg2, ..., argn]]){ statements }
  • return:関数から値を返す
    return expression;
  • with:現在の名前空間を指定
    with (object) { statements }
      x = Math.sin(i * Math.PI / 20);
      y = Math.cos(i * Math.PI / 30);

     と書く代わりに
      with(Math) {
        x = sin(i * PI / 20);
        y = cos(i * PI / 30);
      }



〔JSメモ〕演算子(途中)

*条件演算子(?:)
x > 0 ? x*y : -x*y // x>0がtrueならx*y、falseならば-x*y
ex.
greeting = "hello " + ((name != null) ? name : "there");


*typeof演算子

〔JSメモ〕変数とデータ型

*データ型(基本的なもの)
├数値
├文字列(テキスト)
├論理データ:true(1)|false(0)
├関数
├オブジェクト型(<-->連想配列) ex.) document.images["width"]
├配列  ex.)document.images
Null("有効な値(オブジェクト、配列、関数、文字列etc..)ではない"という意味の特殊値)"null"キーワード
Undefined("未定義":存在しない変数、宣言後に値を未代入の変数、存在しないオブジェクトのプロパティを使おうとするとこの値が返される)"undefined"キーワードというものはない

*その他のデータ型
├Date(日付オブジェクト):new演算子とDate()コンストラクタでDateオブジェクトを生成する。なんのこっちゃ?! ex.)now = new Date();

*データ型ラッパーオブジェクト
  • 基本データ型(数値、文字列、論理データ、関数)には、それぞれの型に対応するオブジェクト型(wrapperという)がある。
    - 数値 → Numberオブジェクト
    - 文字列→ Stringオブジェクト
    - 論理値→ Booleanオブジェクト
    - 関数 → Functionオブジェクト
  • ラッパーオブジェクトを介して、プロパティやメソッドが使えるようになる

  ex.)
  s = "Hello, World!";    //sは文字列型
  last_word = s.substring(s.lastIndexOf(" ")+1, s.length); 
    //処理内部では一時的なStringラッパーオブジェクトが生成される(処理が終われば消滅)


  //明示的にStringオブジェクトSを生成
  S = new Strint("Hello, World!");

〔JSメモ〕文字列

// JavaScriptの文字列に関する覚え書き

var s="Hello, world";


*文字列の長さ:
document.write([B]s.length[/B]);


最後からn個目の文字:
last_char = [B]s.charAt(s.length - 1)[/B];  //最後の文字"d"
document.write(last_char);


先頭からm~n番目の文字(先頭文字を0とする):
sub = [B]s.substring(1,4)[/B]; //2~4番目("ell")
document.write(sub);

〔JSメモ〕エスケープシーケンス

//文字列リテラルのエスケープシーケンス覚え書き

\b:バックスペース
\f:改ページ
\n:改行
\r:キャリッジリターン
\t:タブ
\':アポストロフィ
\":二重引用符
\xxx:特殊記号(8進数で指定)