Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
PHPerから見た昨今のJSについて
Search
polidog
PRO
March 14, 2015
Technology
0
470
PHPerから見た昨今のJSについて
polidog
PRO
March 14, 2015
Tweet
Share
More Decks by polidog
See All by polidog
小さな開発会社を作った理由(再)
polidog
PRO
0
180
React Server ComponentsでAPI不要の開発体験
polidog
PRO
1
620
小さな開発会社が受託開発に力を入れる理由
polidog
PRO
0
260
小さな開発会社を作った理由
polidog
PRO
1
3.2k
小さな開発会社がWebサービスを作る理由
polidog
PRO
1
730
トランザクションスクリプトは何がダメなのか?
polidog
PRO
2
3.8k
React初心者がHooksを理解するためにコードを読んでみた
polidog
PRO
0
580
object-mapperを作ってる話
polidog
PRO
0
370
2020年から始めるSymfonyフレームワーク
polidog
PRO
2
1.3k
Other Decks in Technology
See All in Technology
モダンデータスタックの理想と現実の間で~1.3億人Vポイントデータ基盤の現在地とこれから~
taromatsui_cccmkhd
1
240
『君の名は』と聞く君の名は。 / Your name, you who asks for mine.
nttcom
1
100
接客歴・営業歴の方が長いエンジニアから見たre:Invent2025
yama3133
0
100
Building Serverless AI Memory with Mastra × AWS
vvatanabe
0
320
【U/Day Tokyo 2025】Cygames流 最新スマートフォンゲームの技術設計 〜『Shadowverse: Worlds Beyond』におけるアーキテクチャ再設計の挑戦~
cygames
PRO
2
1.2k
Connection-based OAuthから学ぶOAuth for AI Agents
flatt_security
0
270
AlmaLinux + KVM + Cockpit で始めるお手軽仮想化基盤 ~ 開発環境などでの利用を想定して ~
koedoyoshida
0
150
IAMユーザーゼロの運用は果たして可能なのか
yama3133
2
520
Amazon Connect アップデート! AIエージェントにMCPツールを設定してみた!
ysuzuki
0
120
New Relic 1 年生の振り返りと Cloud Cost Intelligence について #NRUG
play_inc
0
190
AgentCore BrowserとClaude Codeスキルを活用した 『初手AI』を実現する業務自動化AIエージェント基盤
ruzia
7
1k
AIBuildersDay_track_A_iidaxs
iidaxs
4
1.1k
Featured
See All Featured
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
0
3.4k
We Are The Robots
honzajavorek
0
120
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
54k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.2k
Everyday Curiosity
cassininazir
0
110
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.8k
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
1.9k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
130
Evolving SEO for Evolving Search Engines
ryanjones
0
73
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
400
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
359
30k
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
0
28
Transcript
PHPer͔ΒݟͨࡢࠓͷJSʹͭ ͍ͯ ੩ԬJavaScriptษڧձ #3 @polidog
ࣗݾհ • ϙϦυοάͰ͢ɻ݄ྋଠͬͯݴ͍·͢ɻ • ਗ਼ਫࢢੜ·Εɻਗ਼ਫ۠ҭͪɻ • PHPerͰ͢ɻJS࣌ʑॻ͖·͢ɻ • SymfonyϢʔβʔձͷਓʹͳΓ·ͨ͠ɻ •
λϰΟίϜגࣜձࣾͰΤϯδχΞͬͯ·͢ɻ
ࠓ͍ͨ͜͠ͱ
ͦͷલʹએ
λϰΟίϜͰɺgotripͱ͍ ͏ϝσΟΞͬͯ·͢ɻ http://gotrip.jp/
Symfony Meetup։࠵͠· ͢ʂ https://symfony.doorkeeper.jp/events/ 21692
ࠓ͍ͨ͜͠ͱ
ECMA Script6!!
– @nakajmg “ࠓ͔Β֮͑ΔͳΒCoffeeScriptΑΓES6 ͩΑɻ”
ͱ͜ΖͰESͬͯʁ
–ɹWikipediaΑΓ “Ecma InternationalʹΑͬͯඪ४Խ͞Ε ͨεΫϦϓτݴޠͰ͋Δɻ࣮͝ͱͷޓ ੑ͕͍ JavaScript ྨʢಛʹ JScriptʣ ͷඪ४ΛఆΊͨͷͰ͋Δɻ”
ES6ͰՃ͞ΕΔ
Features https://github.com/lukehoban/es6features
ࠓ͢ػೳ 1. ؔ(Arrow functions,Function Argumentss) 2. ม(let + const) 3.
Ϋϥε(classes) 4. δΣωϨʔλͱfor of 5. άϩʔόϧΦϒδΣΫτ(Map,Set, WeakMap, WeakSet) 6. Promises
1. ؔ var test = a => { console.log(“execute!! :
”+a); } function a(x, y=12) { } function b(x, ...y) { } function c(x,y,z) {} args = [1,2,3] c(…args);
1. ؔ(ArrowFunctions) =>ΛͬͯؔఆٛͰ͖Δ Ҿෳ (a,b) => ͱͳΔ ෳߦͷ߹{}Λ͏
1. ؔ(FunctionArguments) ؔύϥϝʔλʹʹσϑΥϧτ͕ઃఆͰ͖ Δɻ ՄมҾΛ…argsͰࢦఆͰ͖Δɻ ྻΛؔҾʹల։Ͱ͖Δɻ
2. ม let hoge = 1; const fuga = 2;
2. ม letΛ͏ͱϒϩοΫείʔϓ͕࣮ݱͰ͖Δɻ constΛ͏ͱ্ॻ͖Ͱ͖ͳ͍ɻ
3. Ϋϥε class Hoge { } var hoge = new
Hoge();
3. Ϋϥε ΫϥεએݴͰॻ͚Δɻ extendsͰܧঝͰ͖Δɻ superͰܧঝݩͷϝιουݺͼग़ͤΔɻ
4. δΣωϨʔλͱfor of let gen = function*() { for(let i
= 0; i < 10; i++) { yield i+10; } } for (let i of gen()) { console.log(i) }
4. δΣωϨʔλͱfor of function* ͱ yieldΛ͏ for of ͰϧʔϓͰ͖Δ ArrowFunctionͱΈ߹ΘͤΒΕͳ͍
5. άϩʔόϧΦϒδΣΫτ var set = new Set(); set.add(“hoge”).add(“fuga”) var map
= new Map(); map.set(“hoge”,10); map.set(“fuga”,20);
5. άϩʔόϧΦϒδΣΫτ Set Map WeakSet WeakMap ͕͑Δɻ
6. Promises function timeout(duration = 0) { return new Promise((resolve,
reject) => { setTimeout(resolve, duration); }) } var p = timeout(1000).then(() => { return timeout(2000); }).then(() => { throw new Error("hmm"); }).catch(err => { return Promise.all([timeout(100), timeout(200)]); })
6. Promises http://azu.github.io/promises-book/
Ͳ͏ͬͯಈ͔͢ͷʁ
ECMAScript 6 compatibility table http://kangax.github.io/compat-table/es6/
େ͖͚ͯ̎ͭ͘ • αʔόαΠυͰ࣮ߦ͢Δ • τϥϯείϯύΠϥΛར༻͢Δ
αʔόαΠυͰಈ͔ͯ͠ΈΑ ͏ɻ
IUUQTJPKTPSHKBJOEFYIUNM
͜Μͳײ͡Ͱ࣮ߦ͢Δ $ iojs --harmony_classes ./classes.es6.js $ iojs --harmony_arrow_functions ./arrows.js $
iojs --es_staging ./hoge.js
iojs͏ͱ͖ʹҙ
Φϓγϣϯ(flag)͕ඞཁ • shipping features → ϑϥάඞཁͳ͍ • staged features →
--es_staging͕ඞཁ • in progress features → ݸผʹϑϥάࢦఆ͕ඞ ཁ
ϑϥάΛௐΔ $ iojs --v8-options | grep harmony
ΊΜͲ͍͔͘͞Βશ෦ͷϑϥ άΛࢦఆͯ͠ΈΔɻ $ iojs $(iojs --v8-options | grep harmony |
sed -e 's/(.*)\(.* \)/ /g' | tr '\n' ' ‘) ./hoge.js
ৄ͍͠ࣄiojsͷαΠτͷ͜ ͜Λ֬ೝ͠·͠ΐ͏ɻ https://iojs.org/ja/es6.html
τϥϯείϯύΠϥ
IUUQTCBCFMKTJP
gulpͱΈ߹ΘͤͯΈ·͠ΐ ͏ɻ
“Ұ൪ॏཁͳͷָ͘͠ॻ͚Δ͔Ͳ͏͔ͬ ͯ͜ͱɻ”