Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Javascript勉強会
Search
hiro miyagi
September 12, 2014
1
240
Javascript勉強会
hiro miyagi
September 12, 2014
Tweet
Share
More Decks by hiro miyagi
See All by hiro miyagi
テスト自動化勉強会
hiro_miyagi
0
75
CI勉強会
hiro_miyagi
0
99
UX勉強会
hiro_miyagi
0
110
チーム開発とGithub
hiro_miyagi
1
75
Git初心者向け勉強会
hiro_miyagi
0
110
Featured
See All Featured
The Illustrated Children's Guide to Kubernetes
chrisshort
51
51k
The Pragmatic Product Professional
lauravandoore
37
7.1k
Six Lessons from altMBA
skipperchong
29
4.1k
New Earth Scene 8
popppiees
1
1.5k
Utilizing Notion as your number one productivity tool
mfonobong
3
220
AI: The stuff that nobody shows you
jnunemaker
PRO
2
250
Darren the Foodie - Storyboard
khoart
PRO
2
2.4k
Documentation Writing (for coders)
carmenintech
77
5.2k
Game over? The fight for quality and originality in the time of robots
wayneb77
1
110
Designing for Timeless Needs
cassininazir
0
130
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
100
Building an army of robots
kneath
306
46k
Transcript
JavaScriptษڧձ {}
JavaScriptͱ
None
×
JavaScriptͱ • ΦϒδΣΫτࢦ • ϓϩτλΠϓϕʔε • ϑΝʔετΫϥεؔΛαϙʔτ • ྲྀߦ͍ͬͯΔײ͋Γ·͢
JavaScriptͷྺ࢙
ୈҰষϒϥβઓ૪
NetScape vs Microsoft
NetScape Communications • NetScape Navigator(NN)Λ։ൃ • 90લɺओʹ༻͞Ε͍ͯͨϒϥβ • World Wide
Webͷར༻Λ૿Ճͤ͞Δ • খֶߍͷύιίϯʹೖ͍ͬͯͨؾ͕͢Δ • ৭ʑ͋ͬͯݱࡏͷMozilla
Microsoft • NCSA MosaicͷϥΠηϯεΛऔಘ͠Internet Explorer(IE)Λ։ൃ • IEແঈԽͨ͠ΓͰ৭ʑૌ͑ΒΕΔ
݁Ռ • γΣΞ૪͍ͷͨΊɺ֤ϕϯμʔ͕ࠩผԽ͔Γߦ͍టপʹ • Webඪ४ʁͳʹͦΕʁ
JavaΞϓϨοτࡌ • 1995ɺNNʹJavaΞϓϨοτࡌ • ੩తͳHTMLʹಈతͳϓϩάϥϜʂ͍͢͝ʂ • Java͔ͩΒϓϥοτϑΥʔϜʹґଘ͠ͳ͍ʂ͍͢͝ʂ
͔͠͠… • ىಈ͕ΊͪΌΊͪΌ͔ͬͨ
ୈೋষ+BWB4DSJQUੜ
LiveScript • ωοτεέʔϓ͕Javaʹ͔ΘΔϒϥβͰಈ͘εΫϦϓτݴޠͱ ͯ͠։ൃ • ࡞ऀBrendan Eich(ϒϨϯμϯɾΞΠΫ) • Java͕ྲྀߦ͍ͬͯͨͷ͋ΓʮJavaScriptʯʹ໊শ͕มߋ •
NN2.0Ͱ࣮
ҰํMicrosoft • JScriptΛಠ࣮ࣗ • IE3.0Ͱ࣮༧ఆ͕ͩͬͨ৭ʑ͋ͬͯແ͠ʹ
• ϚεΧʔιϧΛͬͯ͘ΔΩϥΩϥ • ը໘શମʹ߱Δઇ • ϒϥβΫϥογϟʔ • ӈΫϦοΫې(ry JavaScriptͷ͍ಓ
ୈࡾষ'MBTIͷొ
Flashͷੜ • FutureWave Software͕Future Splash PlayerΛ։ൃ • ϑΥʔϚοτSWF(Small Web Format)
• ϕΫτϧϕʔε • ಈ࡞͕͍ܰ • Macromedia͕ങऩ͠ʮFlashʯʹ໊শΛมߋ • SWF(Shockwave Format)
ୈ࢛ষඪ४Խ
ECMAScript • IEͷγΣΞ͕ԆͼͯNN͕ϐϯνʹͳΓɺJavaScriptΛඪ४Խ͢Δ ͜ͱʹ • ϛχϚϜͳݴޠ༷ • DOMECMAScriptͰඪ४Խ͞Ε͍ͯͳ͍ • ͋͘·ͰJavaScriptͱ͍͏ݴޠͷ༷ͱͳΔͷ
ECMAScript 3 • ਖ਼نදݱͷಋೖ • จࣈྻपΓͷڧԽ • ྫ֎ॲཧͷಋೖ • Α͘ݟΔͷ͜ͷลΓͷ༷ͷॻ͖ํ
ECMAScript 4 • ClassInterfaceΛಋೖ͠Α͏ͱͨ͠ͱ͜Ζରʹૺ͏ • ActionScript3ͰҰԠ࣮͞Ε͍ͯΔ
JavaScriptͷٯऻ
ୈޒষ"KBYͷ࠶ൃݟ
GoogleʹΑΔAjaxͷ࠶ൃݟ • Google Maps • AjaxΛ༻͍ͨը໘ͷඳը • ࠓ·Ͱʹͳ͔ͬͨϢʔβʔମݧ • Gmail
• GoogleݕࡧͷαδΣετ
AjaxʹΑͬͯJavaScript࣌ͷ౸དྷ • ͜Ε·ͰͷWebʹແ͔ͬͨૢ࡞ײ • WebΞϓϦέʔγϣϯͷՄೳੑΛ͛ͨ • ϥΠϒϥϦͷॆ࣮ • prototype.js •
jQuery • MochiKit
ୈষαʔόʔαΠυ
Node.jsʹద͍ͯ͠Δͷ • େྔͷϦΫΤετॲཧ͕ඞཁͳͷ • API • ϦΞϧλΠϜੑͷ͋Δͷ • Push௨͕ඞཁͳͷ
࠷ۙͷJavaScriptࣄ
ECMAScript 5 • ͍͍ͩͨͷϞμϯϒϥβͰ࣮͞Ε͍ͯΔ • strictϞʔυ • JSONαϙʔτ • Arrayͷ֦ு
ECMAScript 6 • ΞϩʔϑΝϯΫγϣϯ • Ϋϥε • letɺconst • Ϧετแ
• ࡦఆத
ϑϩϯτΤϯυ։ൃʹ͓͚Δ JavaScriptͷར༻
λεΫϥϯφʔ • Grunt.js • gulp • JSɺCSSͷ݁߹ɾѹॖͳͲϑϩϯτΤϯυʹ͓͚ΔλεΫΛࣗ ಈԽ
Gruntfile.js
AltJS
AltJSͱ • JavaScriptΛସ͢ΔͨΊͷݴޠ • ίϯύΠϧ͢ΔͱJavaScriptʹͳΔ • AltJSઓࠃ࣌
Haxe • 2005(AltJSͰૣΊ) • ੩తܕ͚ɺܕਪ • ύλʔϯϚον • EC4ʹΑ͘ࣅͨจ๏
Hexeαϯϓϧίʔυ
CoffeeScript • ؆ܿͳจ๏ͳͷͰՄಡੑ্͕͢Δ • JavaScriptͷγϯλοΫεγϡΨʔͷ༷ͳͷͳͷͰֶशίετ ͕͍ • ()ɺ{}ɺʀ͕͍Βͳ͍ • RailsͰ࠾༻
CoffeeScriptαϯϓϧίʔυ
JSX • DeNA͕։ൃ • ੩తܕ͚ • Ϋϥε • ໊લۭؒ •
࠷దԽ͕ͯ͘͢͝ૣ͍Β͍͠Ͱ͢
Dart • Google͕։ൃ • ୯ମͷݴޠ༷͍࣋ͬͯΔ͕JavaScriptมͷπʔϧ͍ͭͯ ͍Δ • จ๏͕ JavaͬΆ͍ •
DartVM͍ͭͰ͔͢
TypeScript • Microsoft͕։ൃ • JavaScriptΛܕΫϥεͰߏจ֦ு • ܕਪ
ΫϥΠΞϯταΠυ
ΫϥΠΞϯταΠυͷมԽ • SPA(Single page Applicatoin) • ΫϥΠΞϯταΠυMVC • ΫϥΠΞϯταΠυMVVM •
Facebook, Twitter
ΞʔΩςΫνϟͷมԽ
։ൃʹ͓͚Δݒ೦ • ύϑΥʔϚϯε • αʔόʔαΠυͷΈ • DOMૢ࡞ͱ͔AjaxͭΒ͍ʢjQueryͱ͔ʣ
ΫϥΠΞϯταΠυMVC • ΫϥΠΞϯταΠυͰMVC • backbone.js
ΫϥΠΞϯταΠυMVVM • ΫϥΠΞϯταΠυͰMVVM • vue.js, facebook/react, angularJS • ํσʔλόΠϯσΟϯά •
DOMૢ࡞͕͍Βͳ͍
Vue.jsαϯϓϧ
͋Γ͕ͱ͏͍͟͝·ͨ͠