SlideShare une entreprise Scribd logo
1  sur  66
Télécharger pour lire hors ligne
覚醒!JavaScript
株式会社 gumi 原口 剛
自己紹介
• 原口 剛 (はらぐち ごう)
• フロントエンドエンジニア
• 2012年 gumi入社
• スマホWebゲーム
黒歴史
•28歳でJavaでHelloWorld!を書く
•受託システム開発

Java+ActionScript3
•ソシャゲ開発

ケータイFlash制作
•スマホ対応で初めてHTML+CSSを書く

JavaScriptほとんど書いてない
•某価格比較サイトのコーダー業務

スマホ版のカルーセルUI実装で初めて
本格的にJavaScriptにちゃんと触れる
が、しかし!!
それは、”jQueryJavaScript”だった・・・
$('.carousel-prev').click(function () {
$('.carousel').carousel('scroll', '-=1');
});
$('.carousel-next').click(function () {
$('.carousel').carousel('scroll', '+=1');
});
(勝手に命名)
jQueryじゃダメなの!?
小規模ならいいかもね
中・大規模だと破綻するかもね
なんでjQueryじゃダメなの!?
ネームスペースの問題・ハンドラ関数の爆発的増加・
コード再利用のやりづらさetc
と、その話はおいといて・・・
模範的なJavaScriptプロジェクト
プログラミング上達のコツは?
教わるよりも学びましょう!
守・破・離
模範的なJavaScriptプロジェクト
jQuery, Underscore.js, Knockout.js等々
著名なライブラリやフレームワークの中身を
理解可能なレベルになっておきたい!
そこから学べる要素が必ずあるはずです!
理解できるレベルとは?
• なんとなくではなく、明確に理解している
• ブラックボックス症候群にはご注意を!
アジェンダ
•JavaScriptオブジェクト
•関数(Function())
•グローバルオブジェクト
•this
•スコープとクロージャ
JavaScriptオブジェクト
JavaScriptオブジェクト
JavaScriptの世界では、

ほぼすべてがオブジェクトそのものか、

もしくはオブジェクトのようにふるまう
オブジェクト
『名前』と『値』を持つプロパティを

格納するコンテナ
var man = new Object();
man.living = true;
man.age = 35;
man.gender = 'male'; 値
名前
メソッド
単なるデータのみだと、オブジェクトはJSONのよ
うなデータベースすぎないが、オブジェクトには
ふるまいを付与できる
メソッド
var man = new Object();
man.living = true;
man.age = 35;
man.gender = ‘male';
man.getGender = function(){
return man.gender;
}
ふるまい
コンストラクタ関数
一見、普通の関数
一般的に関数名の先頭文字を大文字にしている
new演算子を伴って呼び出された場合、コンスト
ラクタ関数は特別な役割をする
特別な役割?
本来return文を宣言しない場合にはfalse相当の値を
返すところ、コンストラクタ関数は代わりに新た
に生成されるオブジェクトを返す
コンストラクタ関数中のthisは、戻り値であるオブ
ジェクトを示す予約語
var Person = function (living, age, gender) {
this.living = living;
this.age = age;
this.gender = gender;
this.getGender = function () {
return this.gender;
};
};
var haraguchi_10 = new Person(true, 10, ‘male’);
var haraguchi_20 = new Person(true, 20, ‘male’);
var haraguchi_30 = new Person(true, 30, ‘male');
コンストラクタ関数
ネイティブコンストラクタ
JavaScriptには、9つのネイティブオブジェクトコン
ストラクタが存在する
JavaScriptのさまざまな機能を整えるためにも使用さ
れる
関数は、Function()コンストラクタから生成されるオ
ブジェクトで、new演算子とともに使用することで、
コンストラクタとして他のオブジェクトを生成する
9つのオブジェクト
Number() 、String()、 Boolean()、 Object()、 Array()
Function()、 Date()、 RegExp()、 Error()
言語の深層部を理解するには、以上のネイティブ
オブジェクトコンストラクタ関数を知っておくこ
とが になる
リテラル
オブジェクト生成のショートカット
リテラルはnew演算子が行うことを隠 しているにすぎない
オブジェクトの生成はリテラルの方がお手軽だし便利
var myNumber = new Number(10000);
var myNumberLiteral = 10000;
console.log(myNumber.constructor, myNumberLiteral.constructor);
Number() Number()
newする
リテラル
プリミティブ値
null, undefiend, ’string’, 10, true, falseなどは

オブジェクトではなくプリミティブ型
一部のプリミティブ型はオブジェクトのように扱
うとオブジェクトのようにふるまう
var name= “Haraguchi”;
console.log(name.toString()); オブジェクト型化
オブジェクトの保持
• オブジェクトは参照によって保存・操作される
• 変数名からメモリ上のアドレスにアクセスする
• 変数に代入すると参照(アドレス)がコピーされる
• 参照先の変更は、同じ参照をしている変数全てに
かかる
var myObject = {};
var copyOfMyObject = myObject;
myObject.foo = 'bar';
console.log(myObject, copyOfMyObject); // 出力:
参照をコピー
同じ参照 同じ参照
オブジェクトの同値判定
• 同じ参照のときに同値
• 値が同じでも、参照が異なれば同値ではない
var objectFoo = { same: 'same' };
var objectBar = { same: 'same' };
console.log(objectFoo === objectBar);
!
!
別参照
別参照
出力: false
関数
関数(Function())
一般的にはfunction演算子(関数リテラル)を使う
方法で生成する
var addNumber = function(num1, num2){
return num1 + num2};
console.log(addNumber(2, 3));
関数について
• 関数は常に値を返す

return文を記述していない場合などはundefinedが返
される
• JavaScriptの関数は「値」として格納できる特徴が
る( 第1級関数)
• 関数もオブジェクト
関数の実行方法
• 関数として実行
• メソッドとして実行
• コンストラクタとして実行
• apply()もしくはcall()を使って実行
new Hoge()
foo.hoge()
hoge()
apply()
var myObject = {};
var myFunction = function (param1, param2) {
this.foo = param1;
this.bar = param2;
console.log(this)
};
myFunction.apply(myObject, ['foo', 'bar']);
console.log(myObject);
配列
apply()
var myObject = {
myFunction: function (param1, param2) {
this.foo = param1;
this.bar = param2;
console.log(this)
}
};
myObject.myFunction('foo', 'bar');
console.log(myObject);
call()
var myObject = {};
var myFunction = function (param1, param2) {
this.foo = param1;
this.bar = param2;
console.log(this)
};
myFunction.call(myObject, 'foo', 'bar');
console.log(myObject);
第二引数以降
call()
var myObject = {
myFunction: function (param1, param2) {
this.foo = param1;
this.bar = param2;
console.log(this)
}
};
myObject.myFunction('foo', 'bar');
console.log(myObject);
関数の即時実行
関数式は関数定義の後に()演算子を付与するこ
とによってその場で実行する。
(function(msg){
console.log(msg)
})(“Hello”);
再帰
• 関数は自分自身を呼び出すことができる
• 再帰の繰り返しは一般的なコーディングパターン
var countdown = function countdown(num) {
console.log(num);
num--;
if (num < 0) {
return false;
}
countdown(num);
};
countdown(5);
再帰
中断
グローバルオブジェクト
グローバルオブジェクト
Webブラウザ環境だとwindowオブジェクト
グローバルオブジェクト直下に格納されているの
が、グローバルプロパティ、グローバル変数
JavaScriptはあらかじめ定義されている関数を幾つ
か持っていて、これをグローバル関数と呼ぶ
グローバル関数
decodeURI(encodedURI),
decodeURIComponent(encodedURIComponent),
encodeURI(uri), encodeURIComponent(uriComponent),
eval(x), isFinite(number), isNaN(number),
parseFloat(string), parseInt(string, radix)
グローバル変数の作り方
グローバルスコープ下でvar演算子を伴って変数を宣言す
る場合、その変数はグローバル変数となる。
var演算子を使用しない場合はグローバルプロパティとし
て宣言される。
違いとしてはdelete演算子で消せるかどうか。
delete演算子はオブジェクトプロパティを削除する唯一
の手段。
var a = 10;
b = 100;
delete a;
delete b;
グローバル変数
グローバルプロパティ
削除できない
削除できる
this
this
関数が実行される際、thisキーワードの値が設定さ
れる。このとき設定される値は、関数を呼び出す
オブジェクトへリンク
var man = {
name: “Haraguchi”,
getName: function(){return this.name};
};
manを示す
thisの値はどのように決まる?
• 全ての関数に渡されるthisの値は、関数が実行時に
呼び出される際のコンテクストに依存する。
• JavaScriptの「癖」のひとつ
var foo = 'foo';
var myObject = { foo: 'I am myObject.foo' };
var sayFoo = function () {
console.log(this['foo']);
};
myObject.sayFoo = sayFoo;
myObject.sayFoo();
sayFoo();
プロパティに関数指定する
オブジェクトメソッド実行
関数実行
入れ子関数内でのthis
入れ子関数内では、thisはグローバルオブジェクト
を参照するという完全に方向を誤った仕様。
var myObject = {
func1: function () {
console.log(this);
var func2 = function () {
console.log(this) ;
var func3 = function () {
console.log(this);
}();
}();
}
}
myObject
window
window
入れ子関数内でのthisの保持
入れ子関数内でのthisの値見失わないために、一般
的に入れ子関数からアクセスできるスコープに
var self = thisなどで保持して、そのselfを使用する
ことでthisを見失うことがない
var myObject = {
myProperty: 'I can see the light',
myMethod: function () {
var self= this;
var helperFunction = function () {
console.log(self.myProperty);
console.log(this);
};
helperFunction();
}
}
myObject.myMethod();
window
myObject
thisを保持
スコープとクロージャ
スコープとクロージャ
コードが実行されるコンテクストにスコープが割
り当てられる。スコープには、下記の三つのタイ
プがある。
• グローバルスコープ
• ローカルスコープ(関数スコープ)
• evalスコープ(非推奨)
スコープ別出力例
var foo = o;
console.log(foo);
var myFunction = function(){
var foo = 1;
console.log(foo);
}
eval(‘var foo = 3; console.log(foo);’);
グローバルスコープ
ローカルスコープ
evalスコープ
ブロックスコープは無い
var foo = 1;
if (true) {
foo = 2;
foo = i;
console.log(foo);
}
fooの値が書き換わる
同じスコープ
同じスコープ
スコープチェーン
変数を参照する時、近いローカルスコープから探し、見つからな
かったらグローバルスコープまで る
var x = 10;
var foo = function () {
var y = 20;
var bar = function () {
var z = 30;
console.log(z + y + x);
};
};
foo();
「bar」のローカルスコープ
「foo」のローカルスコープ
グローバルスコープ
静的スコープ
• 関数定義時の場所にもとづいてスコープが決定
• thisの決定(実行時)とは、違う
• 定義済みの関数を別スコープへ渡しても、スコー
プチェーンは変わらない
var parentFunction = function () {
var foo = 'foo';
return function () {
console.log(foo);
}
}
var nestedFunction = parentFunction();
nestedFunction(); 出力: 'foo'
無名関数を参照
出力: 'foo'
クロージャ
クロージャを一言で表すと「スコープチェーンに
よって存在する変数への参照を保持している関数」
• カプセル化
• グローバル変数汚染を防ぐ
カプセル化
var countUp = function () {
var count = 0;
return function () {
return ++count;
};
}();
console.log(countUp());
console.log(countUp());
console.log(countUp());
子関数からのみアクセス可能
スコープチェーンをだとる
スコープチェーンをだとる
スコープチェーンをだとる
クロージャ失敗例
var foo = function () {
var funcArray = [];
var i;
for (i = 0; i < 3; i++) {
funcArray[i] = function () {
console.log(i);
};
}
return funcArray;
}();
foo[0].();
foo[1].();
子関数からは共通のiにアクセス
関数の参照を保持
クロージャ成功例
var foo = function () {
var funcArray = [];
var i;
var func = function (i) {
return function () {
console.log(i);
};
}
for (i = 0; i < 3; i++) {
funcArray[i] = func(i);
}
return funcArray;
}();
独自に持つローカル変数変数
クロージャを配列に格納
配列に格納された関数を実行
funcArray[0]();
funcArray[1]();
funcArray[2]();
出力: 0
出力: 1
出力: 2
まだまだいろいろありますが、
所 は、枝葉の知識。
Cody Lindley 著、和田 祐一郎 訳
開眼!
JavaScript――
言語仕様から学ぶ
JavaScriptの本
質
fin.
ご静聴ありがとうございました。

Contenu connexe

Tendances

JavaScriptことはじめ
JavaScriptことはじめJavaScriptことはじめ
JavaScriptことはじめYuki Ishikawa
 
JavaScript入門-基礎編
JavaScript入門-基礎編JavaScript入門-基礎編
JavaScript入門-基礎編mactkg
 
20150131_jQueryのようにWebテストが書けるGeb Navigator APIの紹介
20150131_jQueryのようにWebテストが書けるGeb Navigator APIの紹介20150131_jQueryのようにWebテストが書けるGeb Navigator APIの紹介
20150131_jQueryのようにWebテストが書けるGeb Navigator APIの紹介Yuki Fujisawa
 
ng-japan 2015 TypeScript+AngularJS 1.3
ng-japan 2015 TypeScript+AngularJS 1.3ng-japan 2015 TypeScript+AngularJS 1.3
ng-japan 2015 TypeScript+AngularJS 1.3Masahiro Wakame
 
第4回勉強会 Groovyの文法からSpockまで
第4回勉強会 Groovyの文法からSpockまで第4回勉強会 Groovyの文法からSpockまで
第4回勉強会 Groovyの文法からSpockまでMugen Fujii
 
クライアントサイドjavascript簡単紹介
クライアントサイドjavascript簡単紹介クライアントサイドjavascript簡単紹介
クライアントサイドjavascript簡単紹介しくみ製作所
 
はじめよう Backbone.js
はじめよう Backbone.jsはじめよう Backbone.js
はじめよう Backbone.jsHiroki Toyokawa
 
TypeScript 1.0 オーバービュー
TypeScript 1.0 オーバービューTypeScript 1.0 オーバービュー
TypeScript 1.0 オーバービューAkira Inoue
 
ECMAScript6による関数型プログラミング
ECMAScript6による関数型プログラミングECMAScript6による関数型プログラミング
ECMAScript6による関数型プログラミングTanUkkii
 
Buildinsider OFFLINE TypeScriptの基礎から実践・利用事例まで
Buildinsider OFFLINE TypeScriptの基礎から実践・利用事例までBuildinsider OFFLINE TypeScriptの基礎から実践・利用事例まで
Buildinsider OFFLINE TypeScriptの基礎から実践・利用事例までMasahiro Wakame
 
コンパイラ指向ReVIEW
コンパイラ指向ReVIEWコンパイラ指向ReVIEW
コンパイラ指向ReVIEWMasahiro Wakame
 
Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話
Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話
Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話Akira Inoue
 
jQuery Performance Tips – jQueryにおける高速化 -
jQuery Performance Tips – jQueryにおける高速化 -jQuery Performance Tips – jQueryにおける高速化 -
jQuery Performance Tips – jQueryにおける高速化 -Hayato Mizuno
 
覚醒JavaScript -ES6で作るIsomophicアプリケーション-
覚醒JavaScript  -ES6で作るIsomophicアプリケーション-覚醒JavaScript  -ES6で作るIsomophicアプリケーション-
覚醒JavaScript -ES6で作るIsomophicアプリケーション-Oonishi Keitarou
 
React.jsでクライアントサイドなWebアプリ入門
React.jsでクライアントサイドなWebアプリ入門React.jsでクライアントサイドなWebアプリ入門
React.jsでクライアントサイドなWebアプリ入門spring_raining
 
大規模Node.jsを支える ロードバランスとオートスケールの独自実装
大規模Node.jsを支える ロードバランスとオートスケールの独自実装大規模Node.jsを支える ロードバランスとオートスケールの独自実装
大規模Node.jsを支える ロードバランスとオートスケールの独自実装kidach1
 
JavaScriptCore.framework の普通な使い方 #cocoa_kansai
JavaScriptCore.framework の普通な使い方 #cocoa_kansaiJavaScriptCore.framework の普通な使い方 #cocoa_kansai
JavaScriptCore.framework の普通な使い方 #cocoa_kansaiTomohiro Kumagai
 
JavaScript超入門 基礎
JavaScript超入門 基礎JavaScript超入門 基礎
JavaScript超入門 基礎tetsu6
 
JVMの中身を可視化してみた
JVMの中身を可視化してみたJVMの中身を可視化してみた
JVMの中身を可視化してみたKengo Toda
 

Tendances (20)

JavaScriptことはじめ
JavaScriptことはじめJavaScriptことはじめ
JavaScriptことはじめ
 
JavaScript入門-基礎編
JavaScript入門-基礎編JavaScript入門-基礎編
JavaScript入門-基礎編
 
20150131_jQueryのようにWebテストが書けるGeb Navigator APIの紹介
20150131_jQueryのようにWebテストが書けるGeb Navigator APIの紹介20150131_jQueryのようにWebテストが書けるGeb Navigator APIの紹介
20150131_jQueryのようにWebテストが書けるGeb Navigator APIの紹介
 
ng-japan 2015 TypeScript+AngularJS 1.3
ng-japan 2015 TypeScript+AngularJS 1.3ng-japan 2015 TypeScript+AngularJS 1.3
ng-japan 2015 TypeScript+AngularJS 1.3
 
第4回勉強会 Groovyの文法からSpockまで
第4回勉強会 Groovyの文法からSpockまで第4回勉強会 Groovyの文法からSpockまで
第4回勉強会 Groovyの文法からSpockまで
 
クライアントサイドjavascript簡単紹介
クライアントサイドjavascript簡単紹介クライアントサイドjavascript簡単紹介
クライアントサイドjavascript簡単紹介
 
はじめよう Backbone.js
はじめよう Backbone.jsはじめよう Backbone.js
はじめよう Backbone.js
 
TypeScript 1.0 オーバービュー
TypeScript 1.0 オーバービューTypeScript 1.0 オーバービュー
TypeScript 1.0 オーバービュー
 
ECMAScript6による関数型プログラミング
ECMAScript6による関数型プログラミングECMAScript6による関数型プログラミング
ECMAScript6による関数型プログラミング
 
Buildinsider OFFLINE TypeScriptの基礎から実践・利用事例まで
Buildinsider OFFLINE TypeScriptの基礎から実践・利用事例までBuildinsider OFFLINE TypeScriptの基礎から実践・利用事例まで
Buildinsider OFFLINE TypeScriptの基礎から実践・利用事例まで
 
コンパイラ指向ReVIEW
コンパイラ指向ReVIEWコンパイラ指向ReVIEW
コンパイラ指向ReVIEW
 
Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話
Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話
Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話
 
jQuery Performance Tips – jQueryにおける高速化 -
jQuery Performance Tips – jQueryにおける高速化 -jQuery Performance Tips – jQueryにおける高速化 -
jQuery Performance Tips – jQueryにおける高速化 -
 
キメるClojure
キメるClojureキメるClojure
キメるClojure
 
覚醒JavaScript -ES6で作るIsomophicアプリケーション-
覚醒JavaScript  -ES6で作るIsomophicアプリケーション-覚醒JavaScript  -ES6で作るIsomophicアプリケーション-
覚醒JavaScript -ES6で作るIsomophicアプリケーション-
 
React.jsでクライアントサイドなWebアプリ入門
React.jsでクライアントサイドなWebアプリ入門React.jsでクライアントサイドなWebアプリ入門
React.jsでクライアントサイドなWebアプリ入門
 
大規模Node.jsを支える ロードバランスとオートスケールの独自実装
大規模Node.jsを支える ロードバランスとオートスケールの独自実装大規模Node.jsを支える ロードバランスとオートスケールの独自実装
大規模Node.jsを支える ロードバランスとオートスケールの独自実装
 
JavaScriptCore.framework の普通な使い方 #cocoa_kansai
JavaScriptCore.framework の普通な使い方 #cocoa_kansaiJavaScriptCore.framework の普通な使い方 #cocoa_kansai
JavaScriptCore.framework の普通な使い方 #cocoa_kansai
 
JavaScript超入門 基礎
JavaScript超入門 基礎JavaScript超入門 基礎
JavaScript超入門 基礎
 
JVMの中身を可視化してみた
JVMの中身を可視化してみたJVMの中身を可視化してみた
JVMの中身を可視化してみた
 

En vedette

RubyとJavaScriptに見る第一級関数
RubyとJavaScriptに見る第一級関数RubyとJavaScriptに見る第一級関数
RubyとJavaScriptに見る第一級関数Altech Takeno
 
JavaScriptクイックスタート
JavaScriptクイックスタートJavaScriptクイックスタート
JavaScriptクイックスタートShumpei Shiraishi
 
新しいCSSの仕様を色々調べてみた
新しいCSSの仕様を色々調べてみた新しいCSSの仕様を色々調べてみた
新しいCSSの仕様を色々調べてみたHiromitsuuuuu Morikawa
 
Javascript基礎勉強会
Javascript基礎勉強会Javascript基礎勉強会
Javascript基礎勉強会Mayu Kimura
 
「職人技」では未来が見えない!みんなが使えるAdobeのHTML5関連ツールとソリューション。
「職人技」では未来が見えない!みんなが使えるAdobeのHTML5関連ツールとソリューション。「職人技」では未来が見えない!みんなが使えるAdobeのHTML5関連ツールとソリューション。
「職人技」では未来が見えない!みんなが使えるAdobeのHTML5関連ツールとソリューション。Teiichi Ota
 
JavaScriptで出来る、あんなことこんなこと
JavaScriptで出来る、あんなことこんなことJavaScriptで出来る、あんなことこんなこと
JavaScriptで出来る、あんなことこんなことMayu Kimura
 
これからはじめるための JavaScript 開発環境
これからはじめるための JavaScript 開発環境これからはじめるための JavaScript 開発環境
これからはじめるための JavaScript 開発環境Ryo Higashigawa
 
JavaScriptと共に歩いて行く決意をした君へ
JavaScriptと共に歩いて行く決意をした君へJavaScriptと共に歩いて行く決意をした君へ
JavaScriptと共に歩いて行く決意をした君へMuyuu Fujita
 
Web × プログラミング ~JavaScript編~(2017/2/16)
Web × プログラミング ~JavaScript編~(2017/2/16)Web × プログラミング ~JavaScript編~(2017/2/16)
Web × プログラミング ~JavaScript編~(2017/2/16)Hiroyuki Ishikawa
 
jQueryを中心としたJavaScript
jQueryを中心としたJavaScriptjQueryを中心としたJavaScript
jQueryを中心としたJavaScripthideaki honda
 
【Topotal輪読会】JavaScript で学ぶ関数型プログラミング 2 章
【Topotal輪読会】JavaScript で学ぶ関数型プログラミング 2 章【Topotal輪読会】JavaScript で学ぶ関数型プログラミング 2 章
【Topotal輪読会】JavaScript で学ぶ関数型プログラミング 2 章YOSHIKAWA Ryota
 
モダンなCSS設計パターンを考える
モダンなCSS設計パターンを考えるモダンなCSS設計パターンを考える
モダンなCSS設計パターンを考える拓樹 谷
 
JS初心者だけど3ヶ月でこんだけ書けるようになりました
JS初心者だけど3ヶ月でこんだけ書けるようになりましたJS初心者だけど3ヶ月でこんだけ書けるようになりました
JS初心者だけど3ヶ月でこんだけ書けるようになりましたMiki Yokouchi
 
JavaScriptで ごく普通にhttp通信をする 〜esp8266+espruinoでhttp getリクエストをするテスト〜
JavaScriptで ごく普通にhttp通信をする 〜esp8266+espruinoでhttp getリクエストをするテスト〜JavaScriptで ごく普通にhttp通信をする 〜esp8266+espruinoでhttp getリクエストをするテスト〜
JavaScriptで ごく普通にhttp通信をする 〜esp8266+espruinoでhttp getリクエストをするテスト〜Masakazu Muraoka
 
JavaScript Basic 01
JavaScript Basic 01JavaScript Basic 01
JavaScript Basic 01Yossy Taka
 
Lv1から始めるWebサービスのインフラ構築
Lv1から始めるWebサービスのインフラ構築Lv1から始めるWebサービスのインフラ構築
Lv1から始めるWebサービスのインフラ構築伊藤 祐策
 
意識の低い自動化
意識の低い自動化意識の低い自動化
意識の低い自動化greenasparagus
 
とある中堅ベンチャーの新人研修戦略 #efsta42
とある中堅ベンチャーの新人研修戦略 #efsta42とある中堅ベンチャーの新人研修戦略 #efsta42
とある中堅ベンチャーの新人研修戦略 #efsta42Mamiko Tsuda
 
最強オブジェクト指向言語 JavaScript 再入門!
最強オブジェクト指向言語 JavaScript 再入門!最強オブジェクト指向言語 JavaScript 再入門!
最強オブジェクト指向言語 JavaScript 再入門!Yuji Nojima
 

En vedette (20)

RubyとJavaScriptに見る第一級関数
RubyとJavaScriptに見る第一級関数RubyとJavaScriptに見る第一級関数
RubyとJavaScriptに見る第一級関数
 
JavaScriptクイックスタート
JavaScriptクイックスタートJavaScriptクイックスタート
JavaScriptクイックスタート
 
新しいCSSの仕様を色々調べてみた
新しいCSSの仕様を色々調べてみた新しいCSSの仕様を色々調べてみた
新しいCSSの仕様を色々調べてみた
 
Javascript基礎勉強会
Javascript基礎勉強会Javascript基礎勉強会
Javascript基礎勉強会
 
「職人技」では未来が見えない!みんなが使えるAdobeのHTML5関連ツールとソリューション。
「職人技」では未来が見えない!みんなが使えるAdobeのHTML5関連ツールとソリューション。「職人技」では未来が見えない!みんなが使えるAdobeのHTML5関連ツールとソリューション。
「職人技」では未来が見えない!みんなが使えるAdobeのHTML5関連ツールとソリューション。
 
JavaScriptで出来る、あんなことこんなこと
JavaScriptで出来る、あんなことこんなことJavaScriptで出来る、あんなことこんなこと
JavaScriptで出来る、あんなことこんなこと
 
これからはじめるための JavaScript 開発環境
これからはじめるための JavaScript 開発環境これからはじめるための JavaScript 開発環境
これからはじめるための JavaScript 開発環境
 
JavaScriptと共に歩いて行く決意をした君へ
JavaScriptと共に歩いて行く決意をした君へJavaScriptと共に歩いて行く決意をした君へ
JavaScriptと共に歩いて行く決意をした君へ
 
Web × プログラミング ~JavaScript編~(2017/2/16)
Web × プログラミング ~JavaScript編~(2017/2/16)Web × プログラミング ~JavaScript編~(2017/2/16)
Web × プログラミング ~JavaScript編~(2017/2/16)
 
jQueryを中心としたJavaScript
jQueryを中心としたJavaScriptjQueryを中心としたJavaScript
jQueryを中心としたJavaScript
 
【Topotal輪読会】JavaScript で学ぶ関数型プログラミング 2 章
【Topotal輪読会】JavaScript で学ぶ関数型プログラミング 2 章【Topotal輪読会】JavaScript で学ぶ関数型プログラミング 2 章
【Topotal輪読会】JavaScript で学ぶ関数型プログラミング 2 章
 
モダンなCSS設計パターンを考える
モダンなCSS設計パターンを考えるモダンなCSS設計パターンを考える
モダンなCSS設計パターンを考える
 
JS初心者だけど3ヶ月でこんだけ書けるようになりました
JS初心者だけど3ヶ月でこんだけ書けるようになりましたJS初心者だけど3ヶ月でこんだけ書けるようになりました
JS初心者だけど3ヶ月でこんだけ書けるようになりました
 
JavaScriptで ごく普通にhttp通信をする 〜esp8266+espruinoでhttp getリクエストをするテスト〜
JavaScriptで ごく普通にhttp通信をする 〜esp8266+espruinoでhttp getリクエストをするテスト〜JavaScriptで ごく普通にhttp通信をする 〜esp8266+espruinoでhttp getリクエストをするテスト〜
JavaScriptで ごく普通にhttp通信をする 〜esp8266+espruinoでhttp getリクエストをするテスト〜
 
JavaScript Basic 01
JavaScript Basic 01JavaScript Basic 01
JavaScript Basic 01
 
JavaScript 研修
JavaScript 研修JavaScript 研修
JavaScript 研修
 
Lv1から始めるWebサービスのインフラ構築
Lv1から始めるWebサービスのインフラ構築Lv1から始めるWebサービスのインフラ構築
Lv1から始めるWebサービスのインフラ構築
 
意識の低い自動化
意識の低い自動化意識の低い自動化
意識の低い自動化
 
とある中堅ベンチャーの新人研修戦略 #efsta42
とある中堅ベンチャーの新人研修戦略 #efsta42とある中堅ベンチャーの新人研修戦略 #efsta42
とある中堅ベンチャーの新人研修戦略 #efsta42
 
最強オブジェクト指向言語 JavaScript 再入門!
最強オブジェクト指向言語 JavaScript 再入門!最強オブジェクト指向言語 JavaScript 再入門!
最強オブジェクト指向言語 JavaScript 再入門!
 

Similaire à 覚醒!JavaScript

レスポンシブWebデザイン【発展編】
レスポンシブWebデザイン【発展編】レスポンシブWebデザイン【発展編】
レスポンシブWebデザイン【発展編】Yasuhito Yabe
 
Xamarin で ReactiveUI を使ってみた
Xamarin で ReactiveUI を使ってみたXamarin で ReactiveUI を使ってみた
Xamarin で ReactiveUI を使ってみたHironov OKUYAMA
 
Inside frogc in Dart
Inside frogc in DartInside frogc in Dart
Inside frogc in DartGoro Fuji
 
Web制作勉強会 #2
Web制作勉強会 #2Web制作勉強会 #2
Web制作勉強会 #2Moto Yan
 
ScalaでAndroidアプリ開発
ScalaでAndroidアプリ開発ScalaでAndroidアプリ開発
ScalaでAndroidアプリ開発papamitra
 
Unit testing JavaScript with JUnit/JavaFX
Unit testing JavaScript with JUnit/JavaFXUnit testing JavaScript with JUnit/JavaFX
Unit testing JavaScript with JUnit/JavaFXShinya Mochida
 
From Swing to JavaFX - SwingからJavaFXへのマイグレーションガイド
From Swing to JavaFX  - SwingからJavaFXへのマイグレーションガイドFrom Swing to JavaFX  - SwingからJavaFXへのマイグレーションガイド
From Swing to JavaFX - SwingからJavaFXへのマイグレーションガイドYuichi Sakuraba
 
マークアップ講座 04 jQuery - JavaScript
マークアップ講座 04 jQuery - JavaScriptマークアップ講座 04 jQuery - JavaScript
マークアップ講座 04 jQuery - JavaScripteiji sekiya
 
20130924 Picomon CRH勉強会
20130924 Picomon CRH勉強会20130924 Picomon CRH勉強会
20130924 Picomon CRH勉強会Yukihiro Kitazawa
 
これから始める人のためのjQuery入門 先生:大竹 孔明
これから始める人のためのjQuery入門 先生:大竹 孔明これから始める人のためのjQuery入門 先生:大竹 孔明
これから始める人のためのjQuery入門 先生:大竹 孔明schoowebcampus
 
3DCG(3Dコンピュータグラフィック)をWebGLで始めよう
3DCG(3Dコンピュータグラフィック)をWebGLで始めよう3DCG(3Dコンピュータグラフィック)をWebGLで始めよう
3DCG(3Dコンピュータグラフィック)をWebGLで始めようAdvancedTechNight
 
JavaScript + CSS3を活用して スマートフォンサイト/アプリに 動きを付けてみよう
JavaScript + CSS3を活用して スマートフォンサイト/アプリに 動きを付けてみようJavaScript + CSS3を活用して スマートフォンサイト/アプリに 動きを付けてみよう
JavaScript + CSS3を活用して スマートフォンサイト/アプリに 動きを付けてみようHiroaki Wakamatsu
 
ソーシャルアプリ勉強会(第一回資料)配布用
ソーシャルアプリ勉強会(第一回資料)配布用ソーシャルアプリ勉強会(第一回資料)配布用
ソーシャルアプリ勉強会(第一回資料)配布用Yatabe Terumasa
 
20110714 j queryベーシック
20110714 j queryベーシック20110714 j queryベーシック
20110714 j queryベーシック良太 増子
 

Similaire à 覚醒!JavaScript (20)

レスポンシブWebデザイン【発展編】
レスポンシブWebデザイン【発展編】レスポンシブWebデザイン【発展編】
レスポンシブWebデザイン【発展編】
 
Xamarin で ReactiveUI を使ってみた
Xamarin で ReactiveUI を使ってみたXamarin で ReactiveUI を使ってみた
Xamarin で ReactiveUI を使ってみた
 
Inside frogc in Dart
Inside frogc in DartInside frogc in Dart
Inside frogc in Dart
 
Visualforce + jQuery
Visualforce + jQueryVisualforce + jQuery
Visualforce + jQuery
 
Web制作勉強会 #2
Web制作勉強会 #2Web制作勉強会 #2
Web制作勉強会 #2
 
ScalaでAndroidアプリ開発
ScalaでAndroidアプリ開発ScalaでAndroidアプリ開発
ScalaでAndroidアプリ開発
 
Canvas勉強会
Canvas勉強会Canvas勉強会
Canvas勉強会
 
Unit testing JavaScript with JUnit/JavaFX
Unit testing JavaScript with JUnit/JavaFXUnit testing JavaScript with JUnit/JavaFX
Unit testing JavaScript with JUnit/JavaFX
 
From Swing to JavaFX - SwingからJavaFXへのマイグレーションガイド
From Swing to JavaFX  - SwingからJavaFXへのマイグレーションガイドFrom Swing to JavaFX  - SwingからJavaFXへのマイグレーションガイド
From Swing to JavaFX - SwingからJavaFXへのマイグレーションガイド
 
OSC京都2011
OSC京都2011OSC京都2011
OSC京都2011
 
マークアップ講座 04 jQuery - JavaScript
マークアップ講座 04 jQuery - JavaScriptマークアップ講座 04 jQuery - JavaScript
マークアップ講座 04 jQuery - JavaScript
 
20130924 Picomon CRH勉強会
20130924 Picomon CRH勉強会20130924 Picomon CRH勉強会
20130924 Picomon CRH勉強会
 
これから始める人のためのjQuery入門 先生:大竹 孔明
これから始める人のためのjQuery入門 先生:大竹 孔明これから始める人のためのjQuery入門 先生:大竹 孔明
これから始める人のためのjQuery入門 先生:大竹 孔明
 
3DCG(3Dコンピュータグラフィック)をWebGLで始めよう
3DCG(3Dコンピュータグラフィック)をWebGLで始めよう3DCG(3Dコンピュータグラフィック)をWebGLで始めよう
3DCG(3Dコンピュータグラフィック)をWebGLで始めよう
 
JavaScript + CSS3を活用して スマートフォンサイト/アプリに 動きを付けてみよう
JavaScript + CSS3を活用して スマートフォンサイト/アプリに 動きを付けてみようJavaScript + CSS3を活用して スマートフォンサイト/アプリに 動きを付けてみよう
JavaScript + CSS3を活用して スマートフォンサイト/アプリに 動きを付けてみよう
 
前期講座08
前期講座08前期講座08
前期講座08
 
ソーシャルアプリ勉強会(第一回資料)配布用
ソーシャルアプリ勉強会(第一回資料)配布用ソーシャルアプリ勉強会(第一回資料)配布用
ソーシャルアプリ勉強会(第一回資料)配布用
 
実践 NestJS
実践 NestJS実践 NestJS
実践 NestJS
 
20110714 j queryベーシック
20110714 j queryベーシック20110714 j queryベーシック
20110714 j queryベーシック
 
Cve 2013-0422
Cve 2013-0422Cve 2013-0422
Cve 2013-0422
 

覚醒!JavaScript