SlideShare uma empresa Scribd logo
1 de 71
Baixar para ler offline
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

Mais conteúdo relacionado

Mais 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
 

Mais 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

New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 

Último (20)

New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 

JavaScript basics and functions explained

  • 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