SlideShare a Scribd company logo
1 of 30
Download to read offline
7章 正規表現
『JavaScript The Good Parts』読書会
2013/04/11 @torazuka
(おまけ)実行環境
• Node.js
• mocha
• expect.js
• Sublime Text 2
• サンプルコード
• https://bitbucket.org/torazuka/learning_jsgp
今回の範囲 「7章 正規表現」
7.1 正規表現の例
7.2 正規表現の構築
7.3 正規表現の構成要素
JavaScriptの正規表現
regexp.exec
regexp.test
string.match
string.replace
string.search
string.split → くわしくは8章で
文字列操作より正規表現を使った方がパフォーマンスが良いことが多い
正規表現が利用できるメソッド
正規表現はメンテナンスやデバッグが難しくなりやすいため,本章では
著者が単純化したルールを紹介する
簡潔さを多少犠牲にする代わりに,多少簡単に扱えるように
7.1 正規表現の例 (その1)
/^(?:([A-Za-z]+):)?(¥/{0,3})([0-9.¥-A-Za-z]+)
(?::(¥d+))?(?:¥/([^?#]*))?(?:¥?([^#]*))?(?:#(.*))?$/
1行で記述する (上の正規表現リテラルは本来1行で書く)
空白が意味を持つ (テキトーに空白を入れてはいけない)
URIをマッチするための正規表現:
7.1 正規表現の例 ― 全体
/^(?:([A-Za-z]+):)?(¥/{0,3})([0-9.¥-A-Za-z]+)
(?::(¥d+))?(?:¥/([^?#]*))?(?:¥?([^#]*))?(?:#(.*))?$/
/…/が正規表現の全体
^は文字列のはじまり,$は文字列のおわり
余計なものが最初,あるいは最後に付いていないことを保証する
(…)はキャプチャグループ
マッチした文字列を配列に格納する.最初のindexは1
キャプチャグループ末尾の?は,そのキャプチャグループを省略可能という意味
7.1 正規表現の例 ― http:
/^(?:([A-Za-z]+):)?(¥/{0,3})([0-9.¥-A-Za-z]+)
(?::(¥d+))?(?:¥/([^?#]*))?(?:¥?([^#]*))?(?:#(.*))?$/
[…]は文字クラス
:はコロン文字
(?:…)は非キャプチャグループ
マッチした文字列を配列に格納しない.
使わない文字列は,非キャプチャグループにするとパフォーマンス上よい
-は範囲を表わす.上の場合,AからZとaからzにマッチする
+は直前の文字クラスが1回以上出てくるときにマッチする
7.1 正規表現の例 ― ///
/^(?:([A-Za-z]+):)?(¥/{0,3})([0-9.¥-A-Za-z]+)
(?::(¥d+))?(?:¥/([^?#]*))?(?:¥?([^#]*))?(?:#(.*))?$/
{0,3}は直前の文字が0回,1回,2回,3回連続するとマッチする
(…)はキャプチャグループ
¥/はスラッシュ文字
正規表現の終わりでないことを示すためエスケープする
7.1 正規表現の例 ― www.ora.com
/^(?:([A-Za-z]+):)?(¥/{0,3})([0-9.¥-A-Za-z]+)
(?::(¥d+))?(?:¥/([^?#]*))?(?:¥?([^#]*))?(?:#(.*))?$/
(…)はキャプチャグループ
.はピリオド文字
¥-はハイフン文字
範囲を表わすハイフンでないことを示すためエスケープする
+は直前の文字クラスが1回以上出てくるときにマッチする
7.1 正規表現の例 ― :80
/^(?:([A-Za-z]+):)?(¥/{0,3})([0-9.¥-A-Za-z]+)
(?::(¥d+))?(?:¥/([^?#]*))?(?:¥?([^#]*))?(?:#(.*))?$/
(?:…)は非キャプチャグループ
末尾に?があるので省略可能
2つ目の:はコロン文字
+は直前の文字クラスが1回以上出てくるときにマッチする
¥dは数字
7.1 正規表現の例 ― /goodparts
/^(?:([A-Za-z]+):)?(¥/{0,3})([0-9.¥-A-Za-z]+)
(?::(¥d+))?(?:¥/([^?#]*))?(?:¥?([^#]*))?(?:#(.*))?$/
(?:…)は非キャプチャグループ
末尾に?があるので省略可能
¥/はスラッシュ文字
*は直前の文字クラスの0回または1回以上の繰り返しにマッチする
^?#は「?と#を除くすべての文字」
7.1 正規表現の例 ― ?q
/^(?:([A-Za-z]+):)?(¥/{0,3})([0-9.¥-A-Za-z]+)
(?::(¥d+))?(?:¥/([^?#]*))?(?:¥?([^#]*))?(?:#(.*))?$/
(?:…)は非キャプチャグループ
末尾に?があるので省略可能
¥?は? 文字
*は直前の文字クラスの0回または1回以上の繰り返しにマッチする
^#は「#を除くすべての文字」
7.1 正規表現の例 ― #fragment
/^(?:([A-Za-z]+):)?(¥/{0,3})([0-9.¥-A-Za-z]+)
(?::(¥d+))?(?:¥/([^?#]*))?(?:¥?([^#]*))?(?:#(.*))?$/
(?:…)は非キャプチャグループ
末尾に?があるので省略可能
#はシャープ文字
*は直前の文字クラスの0回または1回以上の繰り返しにマッチする
.は「改行文字以外のすべての文字」
7.1 正規表現の例 ― 良い正規表現
正規表現の機能は,各処理系の間で互換性が低い
入れ子部分の実行速度が遅い処理系もある
複雑さを避けることは大事
• 短く,シンプルに
• 正しく動くと確信できる
• 必要なときに修正できる
7.1 正規表現の例 (その2)
/^-?¥d+(?:¥.¥d*)?(?:e[+¥-]?¥d+)?$/i
さっきより短い! ガンバ!
数字をマッチするための正規表現:
7.1 正規表現の例 (その2)
/^-?¥d+(?:¥.¥d*)?(?:e[+¥-]?¥d+)?$/i
/^…$/でテキスト全体が正規表現の適用範囲となる
“もしこれらを付けなかった場合は、この正規表現は文字列の中に数値が
含まれているかどうかを調べるものになる”
iはアルファベットの大文字小文字を区別しないためのフラグ
ここでは,eとEを両方マッチさせるために使っている
[Ee]や(?:E|e)でも同じことができるが,iフラグを使う方が簡潔
7.1 正規表現の例 (その2)
/^-?¥d+(?:¥.¥d*)?(?:e[+¥-]?¥d+)?$/i
-? は,ハイフン文字を省略できるという意味
¥dは数字. [0-9]と同じ
+は直前の文字クラスが1回以上出てくるときにマッチする
7.1 正規表現の例 (その2)
/^-?¥d+(?:¥.¥d*)?(?:e[+¥-]?¥d+)?$/i
¥. はピリオド文字.ここでは小数点にマッチさせる意図
¥dは数字
*は直前の文字クラスの0回または1回以上の繰り返しにマッチする
(?:…)は非キャプチャグループ
マッチした文字列を配列に格納しない.
7.1 正規表現の例 (その2)
/^-?¥d+(?:¥.¥d*)?(?:e[+¥-]?¥d+)?$/i
+¥- は正負記号
¥dは数字
(?:…)は非キャプチャグループ
eはアルファベットのe
+は直前の文字クラスが1回以上出てくるときにマッチする
7.2 正規表現の構築
RegExpオブジェクトを生成する方法
1. 正規表現リテラルを利用 (推奨)
2. RegExpコンストラクタ関数を利用
プログラミング時に確定できないデータを使って,実行時に正規表現を
生成する場合に便利
• 2の方法を使うとき,バックスラッシュとダブルクォーテーションとクォーテーション
は,エスケープする必要がある
• 同じ正規表現リテラルで生成されたRegExpオブジェクトは,単一のインスタンス
を共有する
留意点
7.2 正規表現の構築
正規表現リテラルのフラグ
• g 複数回マッチする
• i 大文字と小文字を区別しない
• m ^と$が行末記号にマッチする ?
RegExpオブジェクトのプロパティ
• global(役割はフラグgに同じ)
• ignoreCase(フラグiに同じ)
• muitiline(フラグmに同じ)
• lastIndex 次回のexecメソッドのマッチの開始点.初期値は0
• source ソース文字列
複数行に渡るマッチ対象を扱える
(例: import文や設定ファイルなど)
7.3 正規表現の構成要素
7.3.1 選択肢
7.3.2
正規表現シーケンス
7.3.2
正規表現シーケンス
7.3.3
正規表現因子
7.3.3
正規表現因子
7.3.1 選択肢
|(タテ棒)で分割された1つ以上の正規表現シーケンスが,選択肢を構成する
いずれかのシーケンスにマッチするとき,その正規表現にマッチする
書かれた順にチェックされる
7.3.2 正規表現シーケンス
1つ以上の正規表現因子が,正規表現シーケンスを構成する
因子がいくつ続くかを数量詞で示す(c.f. 7.3.8)
数量詞が指定されていないときは1個とみなす
7.3.3 正規表現因子
• 文字
• カッコで囲まれたグループ
• 文字クラス
• エスケープシーケンス
数字とアルファベット以外は,直前に¥をつけることで,その文字自身とみなす
ピリオド,キャロット,ドル文字は,エスケープしない場合に次の意味を持つ
• . 改行文字以外の文字
• ^ lastIndexが0 のとき,テキストの先頭部分にマッチする
mフラグがセットされているときは,改行文字にもマッチする
• $ テキストの末尾部分にマッチする
mフラグがセットされているときは,改行文字にもマッチする
7.3.4 エスケープ
• ¥f 改ページ
• ¥n 改行文字
• ¥r キャリッジリターン
• ¥t タブ文字
• ¥u ユニコード文字の16進数表現
• ¥b バックスペース
• ¥d 数字,¥D 数字以外
• ¥s 空白文字,¥S 空白文字以外
• ¥w [0-9A-Za-z_]と同じ
• ¥b 単語境界
多言語アプリケーションでは実用的で
ないので,用途に応じたものを自分で
定義する(¥wと¥bは良いパーツではない)
• ¥1 第1番目のキャプチャグループ
7.3.5 正規表現グループ
• キャプチャグループ(...) マッチした文字列はキャプチャ(配列に格納)される
• 非キャプチャグループ(?:...) されない
• 肯定先読み(?=...) グループにマッチした後,走査位置を巻き戻す
• 否定先読み(?!...) グループのマッチに失敗した場合のみ走査を続行する
次の2つは「良いパーツ」ではない
→サンプルコード参照
7.3.6 正規表現クラス
• [...] 文字のセットを表わす
• 簡潔に書ける
• (?:a|e|i|o|u)
• [aeiou]
• 文字の範囲を指定できる
• (?:!|"|#|¥$|%|&|'|¥(|¥)|¥*|¥+|,|-|¥.|¥/|:|;|<|=|>|@|¥[|¥¥|]|¥^|_|` |¥{|¥||¥}|~)
• [!-¥/:-@¥[-`{-~]
• 補集合を表現できる
• [^ ではじめる
便利な点
7.3.7 正規表現クラスにおけるエスケープ
「正規表現因子におけるエスケープ」との違いに注意
¥bはバックスペースを表わす
次の文字は正規表現クラスの中ではエスケープしなければならない
- / [ ¥ ] ^
7.3.8 数量詞
正規表現因子の後につけて,因子がいくつ連続したときにマッチするかを示す
マッチの処理は貪欲.数量詞の後ろに?をつけると貪欲でなくなる
/www/
/w{3}/ // 上と同じ
/w{3, 6}/ // wが3~6回連続したときにマッチする
/w{0,}/ // *と同じ
/w{1,}/ // +と同じ

More Related Content

What's hot

JSF2.2で簡単webアプリケーション開発
JSF2.2で簡単webアプリケーション開発JSF2.2で簡単webアプリケーション開発
JSF2.2で簡単webアプリケーション開発Masuji Katoda
 
JobStreamerではじめるJavaBatchのクラウド分散実行
JobStreamerではじめるJavaBatchのクラウド分散実行JobStreamerではじめるJavaBatchのクラウド分散実行
JobStreamerではじめるJavaBatchのクラウド分散実行Yoshitaka Kawashima
 
Javaの進化にともなう運用性の向上はシステム設計にどういう変化をもたらすのか
Javaの進化にともなう運用性の向上はシステム設計にどういう変化をもたらすのかJavaの進化にともなう運用性の向上はシステム設計にどういう変化をもたらすのか
Javaの進化にともなう運用性の向上はシステム設計にどういう変化をもたらすのかYoshitaka Kawashima
 
O/Rマッパーによるトラブルを未然に防ぐ
O/Rマッパーによるトラブルを未然に防ぐO/Rマッパーによるトラブルを未然に防ぐ
O/Rマッパーによるトラブルを未然に防ぐkwatch
 
Javaで1から10まで書いた話(sanitized)
Javaで1から10まで書いた話(sanitized)Javaで1から10まで書いた話(sanitized)
Javaで1から10まで書いた話(sanitized)Tokuhiro Matsuno
 

What's hot (6)

JSF2.2で簡単webアプリケーション開発
JSF2.2で簡単webアプリケーション開発JSF2.2で簡単webアプリケーション開発
JSF2.2で簡単webアプリケーション開発
 
Introduction to Spock
Introduction to SpockIntroduction to Spock
Introduction to Spock
 
JobStreamerではじめるJavaBatchのクラウド分散実行
JobStreamerではじめるJavaBatchのクラウド分散実行JobStreamerではじめるJavaBatchのクラウド分散実行
JobStreamerではじめるJavaBatchのクラウド分散実行
 
Javaの進化にともなう運用性の向上はシステム設計にどういう変化をもたらすのか
Javaの進化にともなう運用性の向上はシステム設計にどういう変化をもたらすのかJavaの進化にともなう運用性の向上はシステム設計にどういう変化をもたらすのか
Javaの進化にともなう運用性の向上はシステム設計にどういう変化をもたらすのか
 
O/Rマッパーによるトラブルを未然に防ぐ
O/Rマッパーによるトラブルを未然に防ぐO/Rマッパーによるトラブルを未然に防ぐ
O/Rマッパーによるトラブルを未然に防ぐ
 
Javaで1から10まで書いた話(sanitized)
Javaで1から10まで書いた話(sanitized)Javaで1から10まで書いた話(sanitized)
Javaで1から10まで書いた話(sanitized)
 

Viewers also liked

Social Media Guidelines
Social Media GuidelinesSocial Media Guidelines
Social Media GuidelinesUbDStudio
 
Presentació d'anglés
Presentació d'anglésPresentació d'anglés
Presentació d'anglésRamallanas
 
『入門 ソーシャルデータ』9章
『入門 ソーシャルデータ』9章『入門 ソーシャルデータ』9章
『入門 ソーシャルデータ』9章y torazuka
 
Managing troubleshooting cluster_360dgrees
Managing troubleshooting cluster_360dgreesManaging troubleshooting cluster_360dgrees
Managing troubleshooting cluster_360dgreesSyed Hussain
 
AWSを利用したメカ管理部長-プロトタイプ
AWSを利用したメカ管理部長-プロトタイプAWSを利用したメカ管理部長-プロトタイプ
AWSを利用したメカ管理部長-プロトタイプy torazuka
 
実践 Amazon KMS #cmdevio2015
実践 Amazon KMS #cmdevio2015実践 Amazon KMS #cmdevio2015
実践 Amazon KMS #cmdevio2015y torazuka
 
Javaクラスファイルの読み方
Javaクラスファイルの読み方Javaクラスファイルの読み方
Javaクラスファイルの読み方y torazuka
 
JJUG CCC 2013 Fall「JVMコードリーディング入門-JVMのOS抽象化レイヤーについて-」
JJUG CCC 2013 Fall「JVMコードリーディング入門-JVMのOS抽象化レイヤーについて-」JJUG CCC 2013 Fall「JVMコードリーディング入門-JVMのOS抽象化レイヤーについて-」
JJUG CCC 2013 Fall「JVMコードリーディング入門-JVMのOS抽象化レイヤーについて-」y torazuka
 
Develipers.IO 2016 E-1 「AWS Configを使ったAWS環境の見える化」
Develipers.IO 2016 E-1 「AWS Configを使ったAWS環境の見える化」Develipers.IO 2016 E-1 「AWS Configを使ったAWS環境の見える化」
Develipers.IO 2016 E-1 「AWS Configを使ったAWS環境の見える化」morisshi
 
Elasticsearchインデクシングのパフォーマンスを測ってみた
Elasticsearchインデクシングのパフォーマンスを測ってみたElasticsearchインデクシングのパフォーマンスを測ってみた
Elasticsearchインデクシングのパフォーマンスを測ってみたRyoji Kurosawa
 
みんな大好き“全文検索 on AWS”を試してみました!
みんな大好き“全文検索 on AWS”を試してみました!みんな大好き“全文検索 on AWS”を試してみました!
みんな大好き“全文検索 on AWS”を試してみました!宗 大栗
 
MySQLと組み合わせて始める全文検索プロダクト"elasticsearch"
MySQLと組み合わせて始める全文検索プロダクト"elasticsearch"MySQLと組み合わせて始める全文検索プロダクト"elasticsearch"
MySQLと組み合わせて始める全文検索プロダクト"elasticsearch"Kentaro Yoshida
 
AngularJS2でつまづいたこと
AngularJS2でつまづいたことAngularJS2でつまづいたこと
AngularJS2でつまづいたことTakehiro Takahashi
 
非エンジニアに人工知能に 興味を持ってもらう話
非エンジニアに人工知能に興味を持ってもらう話非エンジニアに人工知能に興味を持ってもらう話
非エンジニアに人工知能に 興味を持ってもらう話Satoru Mikami
 
angular1脳で見るangular2
angular1脳で見るangular2angular1脳で見るangular2
angular1脳で見るangular2Moriyuki Arakawa
 
Elasticsearch+nodejs+dynamodbで作る全社システム基盤
Elasticsearch+nodejs+dynamodbで作る全社システム基盤Elasticsearch+nodejs+dynamodbで作る全社システム基盤
Elasticsearch+nodejs+dynamodbで作る全社システム基盤Recruit Technologies
 

Viewers also liked (20)

Social Media Guidelines
Social Media GuidelinesSocial Media Guidelines
Social Media Guidelines
 
PhD pitch 3TU Bouw
PhD pitch 3TU BouwPhD pitch 3TU Bouw
PhD pitch 3TU Bouw
 
Ig4 magazine pitch.docx
Ig4 magazine pitch.docxIg4 magazine pitch.docx
Ig4 magazine pitch.docx
 
Presentació d'anglés
Presentació d'anglésPresentació d'anglés
Presentació d'anglés
 
『入門 ソーシャルデータ』9章
『入門 ソーシャルデータ』9章『入門 ソーシャルデータ』9章
『入門 ソーシャルデータ』9章
 
Managing troubleshooting cluster_360dgrees
Managing troubleshooting cluster_360dgreesManaging troubleshooting cluster_360dgrees
Managing troubleshooting cluster_360dgrees
 
AWSを利用したメカ管理部長-プロトタイプ
AWSを利用したメカ管理部長-プロトタイプAWSを利用したメカ管理部長-プロトタイプ
AWSを利用したメカ管理部長-プロトタイプ
 
AWS KMSと鍵の話
AWS KMSと鍵の話AWS KMSと鍵の話
AWS KMSと鍵の話
 
実践 Amazon KMS #cmdevio2015
実践 Amazon KMS #cmdevio2015実践 Amazon KMS #cmdevio2015
実践 Amazon KMS #cmdevio2015
 
Javaクラスファイルの読み方
Javaクラスファイルの読み方Javaクラスファイルの読み方
Javaクラスファイルの読み方
 
JJUG CCC 2013 Fall「JVMコードリーディング入門-JVMのOS抽象化レイヤーについて-」
JJUG CCC 2013 Fall「JVMコードリーディング入門-JVMのOS抽象化レイヤーについて-」JJUG CCC 2013 Fall「JVMコードリーディング入門-JVMのOS抽象化レイヤーについて-」
JJUG CCC 2013 Fall「JVMコードリーディング入門-JVMのOS抽象化レイヤーについて-」
 
Develipers.IO 2016 E-1 「AWS Configを使ったAWS環境の見える化」
Develipers.IO 2016 E-1 「AWS Configを使ったAWS環境の見える化」Develipers.IO 2016 E-1 「AWS Configを使ったAWS環境の見える化」
Develipers.IO 2016 E-1 「AWS Configを使ったAWS環境の見える化」
 
Elasticsearchインデクシングのパフォーマンスを測ってみた
Elasticsearchインデクシングのパフォーマンスを測ってみたElasticsearchインデクシングのパフォーマンスを測ってみた
Elasticsearchインデクシングのパフォーマンスを測ってみた
 
みんな大好き“全文検索 on AWS”を試してみました!
みんな大好き“全文検索 on AWS”を試してみました!みんな大好き“全文検索 on AWS”を試してみました!
みんな大好き“全文検索 on AWS”を試してみました!
 
MySQLと組み合わせて始める全文検索プロダクト"elasticsearch"
MySQLと組み合わせて始める全文検索プロダクト"elasticsearch"MySQLと組み合わせて始める全文検索プロダクト"elasticsearch"
MySQLと組み合わせて始める全文検索プロダクト"elasticsearch"
 
AngularJS2でつまづいたこと
AngularJS2でつまづいたことAngularJS2でつまづいたこと
AngularJS2でつまづいたこと
 
非エンジニアに人工知能に 興味を持ってもらう話
非エンジニアに人工知能に興味を持ってもらう話非エンジニアに人工知能に興味を持ってもらう話
非エンジニアに人工知能に 興味を持ってもらう話
 
angular1脳で見るangular2
angular1脳で見るangular2angular1脳で見るangular2
angular1脳で見るangular2
 
Elasticsearch+nodejs+dynamodbで作る全社システム基盤
Elasticsearch+nodejs+dynamodbで作る全社システム基盤Elasticsearch+nodejs+dynamodbで作る全社システム基盤
Elasticsearch+nodejs+dynamodbで作る全社システム基盤
 
Angular2実践入門
Angular2実践入門Angular2実践入門
Angular2実践入門
 

Similar to JavaScript The Good Parts Chapter 7

脱・独自改造! GebでWebDriverをもっとシンプルに
脱・独自改造! GebでWebDriverをもっとシンプルに脱・独自改造! GebでWebDriverをもっとシンプルに
脱・独自改造! GebでWebDriverをもっとシンプルにHiroko Tamagawa
 
Java EE 再入門
Java EE 再入門Java EE 再入門
Java EE 再入門minazou67
 
モダンJavaScript環境構築一歩目
モダンJavaScript環境構築一歩目モダンJavaScript環境構築一歩目
モダンJavaScript環境構築一歩目大樹 小倉
 
Java SE 再入門
Java SE 再入門Java SE 再入門
Java SE 再入門minazou67
 
Java8から17へ
Java8から17へJava8から17へ
Java8から17へonozaty
 
Java EE 8先取り!MVC 1.0入門 [EDR2対応版] 2015-10-10更新
Java EE 8先取り!MVC 1.0入門 [EDR2対応版] 2015-10-10更新Java EE 8先取り!MVC 1.0入門 [EDR2対応版] 2015-10-10更新
Java EE 8先取り!MVC 1.0入門 [EDR2対応版] 2015-10-10更新Masatoshi Tada
 
イマドキの現場で使えるJavaライブラリ事情
イマドキの現場で使えるJavaライブラリ事情イマドキの現場で使えるJavaライブラリ事情
イマドキの現場で使えるJavaライブラリ事情takezoe
 
Functional Testing in #YAPCASIA
Functional Testing in #YAPCASIAFunctional Testing in #YAPCASIA
Functional Testing in #YAPCASIAkyon mm
 
G* Workshop in fukuoka 20120901
G* Workshop in fukuoka 20120901G* Workshop in fukuoka 20120901
G* Workshop in fukuoka 20120901Uehara Junji
 
Gradleどうでしょう
GradleどうでしょうGradleどうでしょう
GradleどうでしょうTakuma Watabiki
 
R5 3 type annotation
R5 3 type annotationR5 3 type annotation
R5 3 type annotationEIICHI KIMURA
 
JavaOne2015報告またはこれからのJava
JavaOne2015報告またはこれからのJavaJavaOne2015報告またはこれからのJava
JavaOne2015報告またはこれからのJavaなおき きしだ
 
JVMの中身を可視化してみた
JVMの中身を可視化してみたJVMの中身を可視化してみた
JVMの中身を可視化してみたKengo Toda
 
JJUG 11月ナイトセミナー CDIをはじめよう
JJUG 11月ナイトセミナー CDIをはじめようJJUG 11月ナイトセミナー CDIをはじめよう
JJUG 11月ナイトセミナー CDIをはじめようNorito Agetsuma
 
Spring2概論@第1回JSUG勉強会
Spring2概論@第1回JSUG勉強会Spring2概論@第1回JSUG勉強会
Spring2概論@第1回JSUG勉強会Mitsuhiro Okamoto
 
Web技術勉強会 第31回
Web技術勉強会 第31回Web技術勉強会 第31回
Web技術勉強会 第31回龍一 田中
 
Beginning Java EE 6 勉強会(1) #bje_study
Beginning Java EE 6 勉強会(1) #bje_studyBeginning Java EE 6 勉強会(1) #bje_study
Beginning Java EE 6 勉強会(1) #bje_studyToshiaki Maki
 

Similar to JavaScript The Good Parts Chapter 7 (20)

脱・独自改造! GebでWebDriverをもっとシンプルに
脱・独自改造! GebでWebDriverをもっとシンプルに脱・独自改造! GebでWebDriverをもっとシンプルに
脱・独自改造! GebでWebDriverをもっとシンプルに
 
Java EE 再入門
Java EE 再入門Java EE 再入門
Java EE 再入門
 
モダンJavaScript環境構築一歩目
モダンJavaScript環境構築一歩目モダンJavaScript環境構築一歩目
モダンJavaScript環境構築一歩目
 
Java SE 再入門
Java SE 再入門Java SE 再入門
Java SE 再入門
 
Java8から17へ
Java8から17へJava8から17へ
Java8から17へ
 
Java EE 8先取り!MVC 1.0入門 [EDR2対応版] 2015-10-10更新
Java EE 8先取り!MVC 1.0入門 [EDR2対応版] 2015-10-10更新Java EE 8先取り!MVC 1.0入門 [EDR2対応版] 2015-10-10更新
Java EE 8先取り!MVC 1.0入門 [EDR2対応版] 2015-10-10更新
 
イマドキの現場で使えるJavaライブラリ事情
イマドキの現場で使えるJavaライブラリ事情イマドキの現場で使えるJavaライブラリ事情
イマドキの現場で使えるJavaライブラリ事情
 
Functional Testing in #YAPCASIA
Functional Testing in #YAPCASIAFunctional Testing in #YAPCASIA
Functional Testing in #YAPCASIA
 
Cubby 2006-08-23
Cubby 2006-08-23Cubby 2006-08-23
Cubby 2006-08-23
 
G* Workshop in fukuoka 20120901
G* Workshop in fukuoka 20120901G* Workshop in fukuoka 20120901
G* Workshop in fukuoka 20120901
 
Gradleどうでしょう
GradleどうでしょうGradleどうでしょう
Gradleどうでしょう
 
Spock's world
Spock's worldSpock's world
Spock's world
 
R5 3 type annotation
R5 3 type annotationR5 3 type annotation
R5 3 type annotation
 
JavaOne2015報告またはこれからのJava
JavaOne2015報告またはこれからのJavaJavaOne2015報告またはこれからのJava
JavaOne2015報告またはこれからのJava
 
JVMの中身を可視化してみた
JVMの中身を可視化してみたJVMの中身を可視化してみた
JVMの中身を可視化してみた
 
JJUG 11月ナイトセミナー CDIをはじめよう
JJUG 11月ナイトセミナー CDIをはじめようJJUG 11月ナイトセミナー CDIをはじめよう
JJUG 11月ナイトセミナー CDIをはじめよう
 
SimpleModeler
SimpleModelerSimpleModeler
SimpleModeler
 
Spring2概論@第1回JSUG勉強会
Spring2概論@第1回JSUG勉強会Spring2概論@第1回JSUG勉強会
Spring2概論@第1回JSUG勉強会
 
Web技術勉強会 第31回
Web技術勉強会 第31回Web技術勉強会 第31回
Web技術勉強会 第31回
 
Beginning Java EE 6 勉強会(1) #bje_study
Beginning Java EE 6 勉強会(1) #bje_studyBeginning Java EE 6 勉強会(1) #bje_study
Beginning Java EE 6 勉強会(1) #bje_study
 

JavaScript The Good Parts Chapter 7