SlideShare una empresa de Scribd logo
1 de 71
Descargar para leer sin conexión
2013/7/20 Maker Part y@NSEG#41
あなたの知らない
javascriptの基本
by ABE Hiroki aka hATrayflood
2013/7/20 Maker Part y@NSEG#41
⾃⼰紹介
・名前:アベヒロキ (@hATrayflood)
・職業:⾃宅サーバ管理者
・http://rayflood.org/diary-temp/
by ABE Hiroki aka hATrayflood
2013/7/20 Maker Part y@NSEG#41
前説by ABE Hiroki aka hATrayflood
2013/7/20 Maker Part y@NSEG#41
2⽉の
顛末by ABE Hiroki aka hATrayflood
2013/7/20 Maker Part y@NSEG#41
体調不良で中座
したわけですが
by ABE Hiroki aka hATrayflood
2013/7/20 Maker Part y@NSEG#41
O-1
O-25by ABE Hiroki aka hATrayflood
2013/7/20 Maker Part y@NSEG#41
ですた
by ABE Hiroki aka hATrayflood
2013/7/20 Maker Part y@NSEG#41
about:mozilla
はレビューが通らなくて
まだ⼊ってないですorz
by ABE Hiroki aka hATrayflood
2013/7/20 Maker Part y@NSEG#41
本題by ABE Hiroki aka hATrayflood
2013/7/20 Maker Part y@NSEG#41
Q. 次のうち
「javascript」
はどれか
by ABE Hiroki aka hATrayflood
2013/7/20 Maker Part y@NSEG#41
1.
var d = new Date();
by ABE Hiroki aka hATrayflood
2013/7/20 Maker Part y@NSEG#41
2.
var w = open('http://example.com/');
by ABE Hiroki aka hATrayflood
2013/7/20 Maker Part y@NSEG#41
3.
var id = document.getElementById('id');
by ABE Hiroki aka hATrayflood
2013/7/20 Maker Part y@NSEG#41
4.
var xhr = new XMLHttpRequest();
by ABE Hiroki aka hATrayflood
2013/7/20 Maker Part y@NSEG#41
A. 1by ABE Hiroki aka hATrayflood
2013/7/20 Maker Part y@NSEG#41
Q. 次のうち
「javascript」
はどれか
by ABE Hiroki aka hATrayflood
2013/7/20 Maker Part y@NSEG#41
1.
var id = setTimeout(fn, 10);
by ABE Hiroki aka hATrayflood
2013/7/20 Maker Part y@NSEG#41
2.
var o = JSON.parse('{"a":1}');
by ABE Hiroki aka hATrayflood
2013/7/20 Maker Part y@NSEG#41
3.
var l = new Uint8Array(10);
by ABE Hiroki aka hATrayflood
2013/7/20 Maker Part y@NSEG#41
4.
$('#id').load('http://example.com');
by ABE Hiroki aka hATrayflood
2013/7/20 Maker Part y@NSEG#41
A. 2, 3
by ABE Hiroki aka hATrayflood
2013/7/20 Maker Part y@NSEG#41
解説by ABE Hiroki aka hATrayflood
2013/7/20 Maker Part y@NSEG#41
var d = new Date();
Dateはjs組み込み
オブジェクト
by ABE Hiroki aka hATrayflood
2013/7/20 Maker Part y@NSEG#41
var w = open('http://example.com/');
open()はwindow.open()の省略形
windowはブラウザオブジェクトで
それのjsインターフェイス
by ABE Hiroki aka hATrayflood
2013/7/20 Maker Part y@NSEG#41
var id = document.getElementById('id');
DOM APIのjsインターフェイス
by ABE Hiroki aka hATrayflood
2013/7/20 Maker Part y@NSEG#41
var xhr = new XMLHttpRequest();
元々はmsxmlコンポーネントの
追加オブジェクトで、それを真似たもの
by ABE Hiroki aka hATrayflood
2013/7/20 Maker Part y@NSEG#41
var id = setTimeout(fn, 10);
window.setTimeout()の省略形
setInterval()も同様
by ABE Hiroki aka hATrayflood
2013/7/20 Maker Part y@NSEG#41
var o = JSON.parse('{"a":1}');
組み込みオブジェクトだが
window.JSONの省略形でもある
by ABE Hiroki aka hATrayflood
2013/7/20 Maker Part y@NSEG#41
var l = new Uint8Array(10);
型付き配列は組み込み
by ABE Hiroki aka hATrayflood
2013/7/20 Maker Part y@NSEG#41
$('#id').load('http://example.com');
jQuery
by ABE Hiroki aka hATrayflood
2013/7/20 Maker Part y@NSEG#41
jsかそうじゃないのか
の判定について
by ABE Hiroki aka hATrayflood
2013/7/20 Maker Part y@NSEG#41
jsshellで実⾏する
ftp://ftp.mozilla.org/pub/firefox/nightly/
latest-mozilla-central/jsshell-win32.zip
by ABE Hiroki aka hATrayflood
2013/7/20 Maker Part y@NSEG#41
⼀⾔に「jsで書ける」と⾔っても
このあたりの区別がついてないと
何ができて何ができないのか
わからなくなる
by ABE Hiroki aka hATrayflood
2013/7/20 Maker Part y@NSEG#41
wshやnode.jsでありがち
by ABE Hiroki aka hATrayflood
2013/7/20 Maker Part y@NSEG#41
本題2
by ABE Hiroki aka hATrayflood
2013/7/20 Maker Part y@NSEG#41
function Fn(){
return 0;
}
var fn1 = Fn;
by ABE Hiroki aka hATrayflood
2013/7/20 Maker Part y@NSEG#41
fn1();
→ 0
Fn();
→ 0
by ABE Hiroki aka hATrayflood
2013/7/20 Maker Part y@NSEG#41
関数は
「関数」型
の変数
by ABE Hiroki aka hATrayflood
2013/7/20 Maker Part y@NSEG#41
function Fn(){
this.num = 0;
}
var fn1 = new Fn();
by ABE Hiroki aka hATrayflood
2013/7/20 Maker Part y@NSEG#41
fn1.num
→ 0
by ABE Hiroki aka hATrayflood
2013/7/20 Maker Part y@NSEG#41
関数は
コンストラクタ
by ABE Hiroki aka hATrayflood
2013/7/20 Maker Part y@NSEG#41
fn1.func = function(){
return 1;
}
by ABE Hiroki aka hATrayflood
2013/7/20 Maker Part y@NSEG#41
fn1.func();
→ 1
by ABE Hiroki aka hATrayflood
2013/7/20 Maker Part y@NSEG#41
インスタンスに
メソッドを追加できる
あとから勝⼿に
by ABE Hiroki aka hATrayflood
2013/7/20 Maker Part y@NSEG#41
関数は変数だから
by ABE Hiroki aka hATrayflood
2013/7/20 Maker Part y@NSEG#41
Fn.prototype.func2 = function(){
return 2;
}
by ABE Hiroki aka hATrayflood
2013/7/20 Maker Part y@NSEG#41
fn1.func2();
→ 2
by ABE Hiroki aka hATrayflood
2013/7/20 Maker Part y@NSEG#41
メソッドはprototypeで
定義するのがお薦め
by ABE Hiroki aka hATrayflood
2013/7/20 Maker Part y@NSEG#41
newしたあとからでも
定義すればすぐ使える
by ABE Hiroki aka hATrayflood
2013/7/20 Maker Part y@NSEG#41
var o = new Object();
var o = {};
by ABE Hiroki aka hATrayflood
2013/7/20 Maker Part y@NSEG#41
どっち
も同じby ABE Hiroki aka hATrayflood
2013/7/20 Maker Part y@NSEG#41
o.num = 1;
o['num'] = 1;
by ABE Hiroki aka hATrayflood
2013/7/20 Maker Part y@NSEG#41
どっち
も同じby ABE Hiroki aka hATrayflood
2013/7/20 Maker Part y@NSEG#41
オブジェクトはハッシュであり
ハッシュはオブジェクトである
by ABE Hiroki aka hATrayflood
2013/7/20 Maker Part y@NSEG#41
var o = {};
o['fn1'] = function(){
return 1;
}
by ABE Hiroki aka hATrayflood
2013/7/20 Maker Part y@NSEG#41
o['fn1']();
→ 1
by ABE Hiroki aka hATrayflood
2013/7/20 Maker Part y@NSEG#41
これ以上はこっちの資料を⾒てね
http://www.slideshare.net/yuka2py/javascript-23768378
by ABE Hiroki aka hATrayflood
2013/7/20 Maker Part y@NSEG#41
蛇⾜by ABE Hiroki aka hATrayflood
2013/7/20 Maker Part y@NSEG#41
"1" && false
→ false
"1" && 0
→ 0
by ABE Hiroki aka hATrayflood
2013/7/20 Maker Part y@NSEG#41
bool値を使わない
論理演算は
bool値を返さない
by ABE Hiroki aka hATrayflood
2013/7/20 Maker Part y@NSEG#41
Boolean("1") && Boolean(0)
にするのが正確
by ABE Hiroki aka hATrayflood
2013/7/20 Maker Part y@NSEG#41
new Date(1374282805605).toString()
→ "Sat Jul 20 2013 10:13:25 GMT+0900"
new Date("Sat Jul 20 2013 10:13:25").toString()
→ "Sat Jul 20 2013 10:13:25 GMT+0900"
new Date("2013/7/20 10:13:25").toString()
→ "Sat Jul 20 2013 10:13:25 GMT+0900"
by ABE Hiroki aka hATrayflood
2013/7/20 Maker Part y@NSEG#41
割と何でもイケる
by ABE Hiroki aka hATrayflood
2013/7/20 Maker Part y@NSEG#41
new Date(1374282805605)
→ [object Date]
new Date(1374282805605).toString()
→ "Sat Jul 20 2013 10:13:25 GMT+0900"
Date(1374282805605)
→ "Sat Jul 20 2013 10:35:15 GMT+0900"
by ABE Hiroki aka hATrayflood
2013/7/20 Maker Part y@NSEG#41
関数としてDate()を実⾏すると
現時刻の⽂字列が返るうえ
引数は無視されてしまう
by ABE Hiroki aka hATrayflood
2013/7/20 Maker Part y@NSEG#41
(chromeで時差がうまく反映されない)
(バグは解消されたらしい)
by ABE Hiroki aka hATrayflood
2013/7/20 Maker Part y@NSEG#41
try{
null.toString();
}
catch(e if e instanceof TypeError){
console.log('TypeError');
}
catch(e){
console.log(e);
}
by ABE Hiroki aka hATrayflood
2013/7/20 Maker Part y@NSEG#41
catch()に
条件式が書ける
by ABE Hiroki aka hATrayflood
2013/7/20 Maker Part y@NSEG#41
instanceof演算⼦で
エラー内容ごとに
振り分け可能
by ABE Hiroki aka hATrayflood
2013/7/20 Maker Part y@NSEG#41
最近の愛読書
by ABE Hiroki aka hATrayflood
2013/7/20 Maker Part y@NSEG#41
・リンク集
twitter @hATrayflood
http://twitter.com/hATrayflood
NSEG 第36回勉強会
http://nseg.jp/?第36回勉強会
O-1 O-25
http://ja.wikipedia.org/wiki/腸管出⾎性⼤腸菌
about:mozilla案
http://rayflood.org/diary-temp/mozilla.xhtml
Mozilla Developer Network JavaScript リファレンス
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference
jsshell
ftp://ftp.mozilla.org/pub/firefox/nightly/latest-mozilla-central/jsshell-win32.zip
Windows Script Host
http://msdn.microsoft.com/ja-jp/library/cc364455.aspx
node.js
http://nodejs.org/
最強オブジェクト指向⾔語 JavaScript 再⼊門!
http://www.slideshare.net/yuka2py/javascript-23768378
by ABE Hiroki aka hATrayflood

Más contenido relacionado

Más de hATrayflood

KancolleSnifferを引き継いだ話と次期バージョンについて
KancolleSnifferを引き継いだ話と次期バージョンについてKancolleSnifferを引き継いだ話と次期バージョンについて
KancolleSnifferを引き継いだ話と次期バージョンについてhATrayflood
 
Firefox Localization Meetup
Firefox Localization MeetupFirefox Localization Meetup
Firefox Localization MeetuphATrayflood
 
Nseg92 kotlin null safety
Nseg92 kotlin null safetyNseg92 kotlin null safety
Nseg92 kotlin null safetyhATrayflood
 
Nseg57 ppaつくった話
Nseg57 ppaつくった話Nseg57 ppaつくった話
Nseg57 ppaつくった話hATrayflood
 
Modest16 ね?簡単でしょ? makefile.in
Modest16 ね?簡単でしょ? makefile.inModest16 ね?簡単でしょ? makefile.in
Modest16 ね?簡単でしょ? makefile.inhATrayflood
 
Nseg26 you should become a mozillian !!
Nseg26 you should become a mozillian !!Nseg26 you should become a mozillian !!
Nseg26 you should become a mozillian !!hATrayflood
 
Modbuilders 独自ビルド環境について
Modbuilders 独自ビルド環境についてModbuilders 独自ビルド環境について
Modbuilders 独自ビルド環境についてhATrayflood
 
高橋rf.html 0.3
高橋rf.html 0.3高橋rf.html 0.3
高橋rf.html 0.3hATrayflood
 
Nseg17 新世代firefox紹介
Nseg17 新世代firefox紹介Nseg17 新世代firefox紹介
Nseg17 新世代firefox紹介hATrayflood
 
Nseg18 カレーとfirefox
Nseg18 カレーとfirefoxNseg18 カレーとfirefox
Nseg18 カレーとfirefoxhATrayflood
 
Nseg15 一般的じゃないpython入門
Nseg15 一般的じゃないpython入門Nseg15 一般的じゃないpython入門
Nseg15 一般的じゃないpython入門hATrayflood
 
Modest09 j query事始め
Modest09 j query事始めModest09 j query事始め
Modest09 j query事始めhATrayflood
 
Modest08 core i7 2600とfirefox 4.0b9でベンチ測ってみたよ
Modest08 core i7 2600とfirefox 4.0b9でベンチ測ってみたよModest08 core i7 2600とfirefox 4.0b9でベンチ測ってみたよ
Modest08 core i7 2600とfirefox 4.0b9でベンチ測ってみたよhATrayflood
 
Nseg10 pcセキュリティの第一歩
Nseg10 pcセキュリティの第一歩Nseg10 pcセキュリティの第一歩
Nseg10 pcセキュリティの第一歩hATrayflood
 
Devnaga6 高橋rf.html + printplusリリース
Devnaga6 高橋rf.html + printplusリリースDevnaga6 高橋rf.html + printplusリリース
Devnaga6 高橋rf.html + printplusリリースhATrayflood
 
Modest06 firefox 4 の l10 n について
Modest06 firefox 4 の l10 n についてModest06 firefox 4 の l10 n について
Modest06 firefox 4 の l10 n についてhATrayflood
 
Modest04 firefox-3.6.4以降のビルドについて
Modest04 firefox-3.6.4以降のビルドについてModest04 firefox-3.6.4以降のビルドについて
Modest04 firefox-3.6.4以降のビルドについてhATrayflood
 
Modest02 freetype2 on fx-3.6 win32
Modest02 freetype2 on fx-3.6 win32Modest02 freetype2 on fx-3.6 win32
Modest02 freetype2 on fx-3.6 win32hATrayflood
 
Nseg8 最近のパソコン事情について
Nseg8 最近のパソコン事情についてNseg8 最近のパソコン事情について
Nseg8 最近のパソコン事情についてhATrayflood
 
Nseg5 第17回北海道開発オフ参加報告
Nseg5 第17回北海道開発オフ参加報告Nseg5 第17回北海道開発オフ参加報告
Nseg5 第17回北海道開発オフ参加報告hATrayflood
 

Más de hATrayflood (20)

KancolleSnifferを引き継いだ話と次期バージョンについて
KancolleSnifferを引き継いだ話と次期バージョンについてKancolleSnifferを引き継いだ話と次期バージョンについて
KancolleSnifferを引き継いだ話と次期バージョンについて
 
Firefox Localization Meetup
Firefox Localization MeetupFirefox Localization Meetup
Firefox Localization Meetup
 
Nseg92 kotlin null safety
Nseg92 kotlin null safetyNseg92 kotlin null safety
Nseg92 kotlin null safety
 
Nseg57 ppaつくった話
Nseg57 ppaつくった話Nseg57 ppaつくった話
Nseg57 ppaつくった話
 
Modest16 ね?簡単でしょ? makefile.in
Modest16 ね?簡単でしょ? makefile.inModest16 ね?簡単でしょ? makefile.in
Modest16 ね?簡単でしょ? makefile.in
 
Nseg26 you should become a mozillian !!
Nseg26 you should become a mozillian !!Nseg26 you should become a mozillian !!
Nseg26 you should become a mozillian !!
 
Modbuilders 独自ビルド環境について
Modbuilders 独自ビルド環境についてModbuilders 独自ビルド環境について
Modbuilders 独自ビルド環境について
 
高橋rf.html 0.3
高橋rf.html 0.3高橋rf.html 0.3
高橋rf.html 0.3
 
Nseg17 新世代firefox紹介
Nseg17 新世代firefox紹介Nseg17 新世代firefox紹介
Nseg17 新世代firefox紹介
 
Nseg18 カレーとfirefox
Nseg18 カレーとfirefoxNseg18 カレーとfirefox
Nseg18 カレーとfirefox
 
Nseg15 一般的じゃないpython入門
Nseg15 一般的じゃないpython入門Nseg15 一般的じゃないpython入門
Nseg15 一般的じゃないpython入門
 
Modest09 j query事始め
Modest09 j query事始めModest09 j query事始め
Modest09 j query事始め
 
Modest08 core i7 2600とfirefox 4.0b9でベンチ測ってみたよ
Modest08 core i7 2600とfirefox 4.0b9でベンチ測ってみたよModest08 core i7 2600とfirefox 4.0b9でベンチ測ってみたよ
Modest08 core i7 2600とfirefox 4.0b9でベンチ測ってみたよ
 
Nseg10 pcセキュリティの第一歩
Nseg10 pcセキュリティの第一歩Nseg10 pcセキュリティの第一歩
Nseg10 pcセキュリティの第一歩
 
Devnaga6 高橋rf.html + printplusリリース
Devnaga6 高橋rf.html + printplusリリースDevnaga6 高橋rf.html + printplusリリース
Devnaga6 高橋rf.html + printplusリリース
 
Modest06 firefox 4 の l10 n について
Modest06 firefox 4 の l10 n についてModest06 firefox 4 の l10 n について
Modest06 firefox 4 の l10 n について
 
Modest04 firefox-3.6.4以降のビルドについて
Modest04 firefox-3.6.4以降のビルドについてModest04 firefox-3.6.4以降のビルドについて
Modest04 firefox-3.6.4以降のビルドについて
 
Modest02 freetype2 on fx-3.6 win32
Modest02 freetype2 on fx-3.6 win32Modest02 freetype2 on fx-3.6 win32
Modest02 freetype2 on fx-3.6 win32
 
Nseg8 最近のパソコン事情について
Nseg8 最近のパソコン事情についてNseg8 最近のパソコン事情について
Nseg8 最近のパソコン事情について
 
Nseg5 第17回北海道開発オフ参加報告
Nseg5 第17回北海道開発オフ参加報告Nseg5 第17回北海道開発オフ参加報告
Nseg5 第17回北海道開発オフ参加報告
 

Último

Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusZilliz
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...apidays
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbuapidays
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...Zilliz
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsNanddeep Nachan
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Zilliz
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 

Último (20)

Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source Milvus
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 

Nseg41 あなたの知らないjavascriptの基本

  • 1. 2013/7/20 Maker Part y@NSEG#41 あなたの知らない javascriptの基本 by ABE Hiroki aka hATrayflood
  • 2. 2013/7/20 Maker Part y@NSEG#41 ⾃⼰紹介 ・名前:アベヒロキ (@hATrayflood) ・職業:⾃宅サーバ管理者 ・http://rayflood.org/diary-temp/ by ABE Hiroki aka hATrayflood
  • 3. 2013/7/20 Maker Part y@NSEG#41 前説by ABE Hiroki aka hATrayflood
  • 4. 2013/7/20 Maker Part y@NSEG#41 2⽉の 顛末by ABE Hiroki aka hATrayflood
  • 5. 2013/7/20 Maker Part y@NSEG#41 体調不良で中座 したわけですが by ABE Hiroki aka hATrayflood
  • 6. 2013/7/20 Maker Part y@NSEG#41 O-1 O-25by ABE Hiroki aka hATrayflood
  • 7. 2013/7/20 Maker Part y@NSEG#41 ですた by ABE Hiroki aka hATrayflood
  • 8. 2013/7/20 Maker Part y@NSEG#41 about:mozilla はレビューが通らなくて まだ⼊ってないですorz by ABE Hiroki aka hATrayflood
  • 9. 2013/7/20 Maker Part y@NSEG#41 本題by ABE Hiroki aka hATrayflood
  • 10. 2013/7/20 Maker Part y@NSEG#41 Q. 次のうち 「javascript」 はどれか by ABE Hiroki aka hATrayflood
  • 11. 2013/7/20 Maker Part y@NSEG#41 1. var d = new Date(); by ABE Hiroki aka hATrayflood
  • 12. 2013/7/20 Maker Part y@NSEG#41 2. var w = open('http://example.com/'); by ABE Hiroki aka hATrayflood
  • 13. 2013/7/20 Maker Part y@NSEG#41 3. var id = document.getElementById('id'); by ABE Hiroki aka hATrayflood
  • 14. 2013/7/20 Maker Part y@NSEG#41 4. var xhr = new XMLHttpRequest(); by ABE Hiroki aka hATrayflood
  • 15. 2013/7/20 Maker Part y@NSEG#41 A. 1by ABE Hiroki aka hATrayflood
  • 16. 2013/7/20 Maker Part y@NSEG#41 Q. 次のうち 「javascript」 はどれか by ABE Hiroki aka hATrayflood
  • 17. 2013/7/20 Maker Part y@NSEG#41 1. var id = setTimeout(fn, 10); by ABE Hiroki aka hATrayflood
  • 18. 2013/7/20 Maker Part y@NSEG#41 2. var o = JSON.parse('{"a":1}'); by ABE Hiroki aka hATrayflood
  • 19. 2013/7/20 Maker Part y@NSEG#41 3. var l = new Uint8Array(10); by ABE Hiroki aka hATrayflood
  • 20. 2013/7/20 Maker Part y@NSEG#41 4. $('#id').load('http://example.com'); by ABE Hiroki aka hATrayflood
  • 21. 2013/7/20 Maker Part y@NSEG#41 A. 2, 3 by ABE Hiroki aka hATrayflood
  • 22. 2013/7/20 Maker Part y@NSEG#41 解説by ABE Hiroki aka hATrayflood
  • 23. 2013/7/20 Maker Part y@NSEG#41 var d = new Date(); Dateはjs組み込み オブジェクト by ABE Hiroki aka hATrayflood
  • 24. 2013/7/20 Maker Part y@NSEG#41 var w = open('http://example.com/'); open()はwindow.open()の省略形 windowはブラウザオブジェクトで それのjsインターフェイス by ABE Hiroki aka hATrayflood
  • 25. 2013/7/20 Maker Part y@NSEG#41 var id = document.getElementById('id'); DOM APIのjsインターフェイス by ABE Hiroki aka hATrayflood
  • 26. 2013/7/20 Maker Part y@NSEG#41 var xhr = new XMLHttpRequest(); 元々はmsxmlコンポーネントの 追加オブジェクトで、それを真似たもの by ABE Hiroki aka hATrayflood
  • 27. 2013/7/20 Maker Part y@NSEG#41 var id = setTimeout(fn, 10); window.setTimeout()の省略形 setInterval()も同様 by ABE Hiroki aka hATrayflood
  • 28. 2013/7/20 Maker Part y@NSEG#41 var o = JSON.parse('{"a":1}'); 組み込みオブジェクトだが window.JSONの省略形でもある by ABE Hiroki aka hATrayflood
  • 29. 2013/7/20 Maker Part y@NSEG#41 var l = new Uint8Array(10); 型付き配列は組み込み by ABE Hiroki aka hATrayflood
  • 30. 2013/7/20 Maker Part y@NSEG#41 $('#id').load('http://example.com'); jQuery by ABE Hiroki aka hATrayflood
  • 31. 2013/7/20 Maker Part y@NSEG#41 jsかそうじゃないのか の判定について by ABE Hiroki aka hATrayflood
  • 32. 2013/7/20 Maker Part y@NSEG#41 jsshellで実⾏する ftp://ftp.mozilla.org/pub/firefox/nightly/ latest-mozilla-central/jsshell-win32.zip by ABE Hiroki aka hATrayflood
  • 33. 2013/7/20 Maker Part y@NSEG#41 ⼀⾔に「jsで書ける」と⾔っても このあたりの区別がついてないと 何ができて何ができないのか わからなくなる by ABE Hiroki aka hATrayflood
  • 34. 2013/7/20 Maker Part y@NSEG#41 wshやnode.jsでありがち by ABE Hiroki aka hATrayflood
  • 35. 2013/7/20 Maker Part y@NSEG#41 本題2 by ABE Hiroki aka hATrayflood
  • 36. 2013/7/20 Maker Part y@NSEG#41 function Fn(){ return 0; } var fn1 = Fn; by ABE Hiroki aka hATrayflood
  • 37. 2013/7/20 Maker Part y@NSEG#41 fn1(); → 0 Fn(); → 0 by ABE Hiroki aka hATrayflood
  • 38. 2013/7/20 Maker Part y@NSEG#41 関数は 「関数」型 の変数 by ABE Hiroki aka hATrayflood
  • 39. 2013/7/20 Maker Part y@NSEG#41 function Fn(){ this.num = 0; } var fn1 = new Fn(); by ABE Hiroki aka hATrayflood
  • 40. 2013/7/20 Maker Part y@NSEG#41 fn1.num → 0 by ABE Hiroki aka hATrayflood
  • 41. 2013/7/20 Maker Part y@NSEG#41 関数は コンストラクタ by ABE Hiroki aka hATrayflood
  • 42. 2013/7/20 Maker Part y@NSEG#41 fn1.func = function(){ return 1; } by ABE Hiroki aka hATrayflood
  • 43. 2013/7/20 Maker Part y@NSEG#41 fn1.func(); → 1 by ABE Hiroki aka hATrayflood
  • 44. 2013/7/20 Maker Part y@NSEG#41 インスタンスに メソッドを追加できる あとから勝⼿に by ABE Hiroki aka hATrayflood
  • 45. 2013/7/20 Maker Part y@NSEG#41 関数は変数だから by ABE Hiroki aka hATrayflood
  • 46. 2013/7/20 Maker Part y@NSEG#41 Fn.prototype.func2 = function(){ return 2; } by ABE Hiroki aka hATrayflood
  • 47. 2013/7/20 Maker Part y@NSEG#41 fn1.func2(); → 2 by ABE Hiroki aka hATrayflood
  • 48. 2013/7/20 Maker Part y@NSEG#41 メソッドはprototypeで 定義するのがお薦め by ABE Hiroki aka hATrayflood
  • 49. 2013/7/20 Maker Part y@NSEG#41 newしたあとからでも 定義すればすぐ使える by ABE Hiroki aka hATrayflood
  • 50. 2013/7/20 Maker Part y@NSEG#41 var o = new Object(); var o = {}; by ABE Hiroki aka hATrayflood
  • 51. 2013/7/20 Maker Part y@NSEG#41 どっち も同じby ABE Hiroki aka hATrayflood
  • 52. 2013/7/20 Maker Part y@NSEG#41 o.num = 1; o['num'] = 1; by ABE Hiroki aka hATrayflood
  • 53. 2013/7/20 Maker Part y@NSEG#41 どっち も同じby ABE Hiroki aka hATrayflood
  • 54. 2013/7/20 Maker Part y@NSEG#41 オブジェクトはハッシュであり ハッシュはオブジェクトである by ABE Hiroki aka hATrayflood
  • 55. 2013/7/20 Maker Part y@NSEG#41 var o = {}; o['fn1'] = function(){ return 1; } by ABE Hiroki aka hATrayflood
  • 56. 2013/7/20 Maker Part y@NSEG#41 o['fn1'](); → 1 by ABE Hiroki aka hATrayflood
  • 57. 2013/7/20 Maker Part y@NSEG#41 これ以上はこっちの資料を⾒てね http://www.slideshare.net/yuka2py/javascript-23768378 by ABE Hiroki aka hATrayflood
  • 58. 2013/7/20 Maker Part y@NSEG#41 蛇⾜by ABE Hiroki aka hATrayflood
  • 59. 2013/7/20 Maker Part y@NSEG#41 "1" && false → false "1" && 0 → 0 by ABE Hiroki aka hATrayflood
  • 60. 2013/7/20 Maker Part y@NSEG#41 bool値を使わない 論理演算は bool値を返さない by ABE Hiroki aka hATrayflood
  • 61. 2013/7/20 Maker Part y@NSEG#41 Boolean("1") && Boolean(0) にするのが正確 by ABE Hiroki aka hATrayflood
  • 62. 2013/7/20 Maker Part y@NSEG#41 new Date(1374282805605).toString() → "Sat Jul 20 2013 10:13:25 GMT+0900" new Date("Sat Jul 20 2013 10:13:25").toString() → "Sat Jul 20 2013 10:13:25 GMT+0900" new Date("2013/7/20 10:13:25").toString() → "Sat Jul 20 2013 10:13:25 GMT+0900" by ABE Hiroki aka hATrayflood
  • 63. 2013/7/20 Maker Part y@NSEG#41 割と何でもイケる by ABE Hiroki aka hATrayflood
  • 64. 2013/7/20 Maker Part y@NSEG#41 new Date(1374282805605) → [object Date] new Date(1374282805605).toString() → "Sat Jul 20 2013 10:13:25 GMT+0900" Date(1374282805605) → "Sat Jul 20 2013 10:35:15 GMT+0900" by ABE Hiroki aka hATrayflood
  • 65. 2013/7/20 Maker Part y@NSEG#41 関数としてDate()を実⾏すると 現時刻の⽂字列が返るうえ 引数は無視されてしまう by ABE Hiroki aka hATrayflood
  • 66. 2013/7/20 Maker Part y@NSEG#41 (chromeで時差がうまく反映されない) (バグは解消されたらしい) by ABE Hiroki aka hATrayflood
  • 67. 2013/7/20 Maker Part y@NSEG#41 try{ null.toString(); } catch(e if e instanceof TypeError){ console.log('TypeError'); } catch(e){ console.log(e); } by ABE Hiroki aka hATrayflood
  • 68. 2013/7/20 Maker Part y@NSEG#41 catch()に 条件式が書ける by ABE Hiroki aka hATrayflood
  • 69. 2013/7/20 Maker Part y@NSEG#41 instanceof演算⼦で エラー内容ごとに 振り分け可能 by ABE Hiroki aka hATrayflood
  • 70. 2013/7/20 Maker Part y@NSEG#41 最近の愛読書 by ABE Hiroki aka hATrayflood
  • 71. 2013/7/20 Maker Part y@NSEG#41 ・リンク集 twitter @hATrayflood http://twitter.com/hATrayflood NSEG 第36回勉強会 http://nseg.jp/?第36回勉強会 O-1 O-25 http://ja.wikipedia.org/wiki/腸管出⾎性⼤腸菌 about:mozilla案 http://rayflood.org/diary-temp/mozilla.xhtml Mozilla Developer Network JavaScript リファレンス https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference jsshell ftp://ftp.mozilla.org/pub/firefox/nightly/latest-mozilla-central/jsshell-win32.zip Windows Script Host http://msdn.microsoft.com/ja-jp/library/cc364455.aspx node.js http://nodejs.org/ 最強オブジェクト指向⾔語 JavaScript 再⼊門! http://www.slideshare.net/yuka2py/javascript-23768378 by ABE Hiroki aka hATrayflood