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
今から始めるES2015
Search
Sota Sugiura
June 16, 2016
Programming
0
540
今から始めるES2015
社内勉強会にて発表した今からES2015を始める人のための資料です。
Sota Sugiura
June 16, 2016
Tweet
Share
More Decks by Sota Sugiura
See All by Sota Sugiura
内製したSlack Appで頑張るIncident Response@Waroom Meetup #1 / Incident Response with Slack App in 10X
sota1235
0
1.7k
20220926_セキュリティチームの今_for_Drs._Prime_公開用.pdf
sota1235
0
140
再発防止策を考える技術 / #phpconsen
sota1235
10
3.9k
How to choose the best npm module for your team?
sota1235
9
600
Realtime Database for high traffic production application
sota1235
7
4k
Road to migrate JP Web as a microservice
sota1235
4
1.6k
インターフェース再入門 / Think Interface again
sota1235
6
11k
再発防止策を考える技術 #phpconfuk_rej
sota1235
1
1.2k
Update around Firebase #io18
sota1235
3
4.3k
Other Decks in Programming
See All in Programming
管你要 trace 什麼、bpftrace 用下去就對了 — COSCUP 2025
shunghsiyu
0
440
令和最新版手のひらコンピュータ
koba789
14
7.9k
Jakarta EE Core Profile and Helidon - Speed, Simplicity, and AI Integration
ivargrimstad
0
100
物語を動かす行動"量" #エンジニアニメ
konifar
14
5.3k
Microsoft Orleans, Daprのアクターモデルを使い効率的に開発、デプロイを行うためのSekibanの試行錯誤 / Sekiban: Exploring Efficient Development and Deployment with Microsoft Orleans and Dapr Actor Models
tomohisa
0
180
新しいモバイルアプリ勉強会(仮)について
uetyo
1
260
技術的負債で信頼性が限界だったWordPress運用をShifterで完全復活させた話
rvirus0817
1
1.9k
Infer入門
riru
4
1.5k
ワープロって実は計算機で
pepepper
2
1.4k
DockerからECSへ 〜 AWSの海に出る前に知っておきたいこと 〜
ota1022
5
1.7k
Terraform やるなら公式スタイルガイドを読もう 〜重要項目 10選〜
hiyanger
13
3.2k
開発チーム・開発組織の設計改善スキルの向上
masuda220
PRO
2
110
Featured
See All Featured
Making Projects Easy
brettharned
117
6.3k
Agile that works and the tools we love
rasmusluckow
329
21k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
31
2.2k
Build The Right Thing And Hit Your Dates
maggiecrowley
37
2.8k
A designer walks into a library…
pauljervisheath
207
24k
A better future with KSS
kneath
239
17k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
30
9.6k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
Statistics for Hackers
jakevdp
799
220k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
23
1.4k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Transcript
ͪΐͬͱͬͯͶ٩ ˊᗜˋ و
ࠓ͔Β࢝ΊΔ&4 !TPUB
ࣗݾհ w 4PUB4VHJVSB !TPUB w ৽ଔ w ࣾͰओʹ͓͘Έͯ͠·͢ w
ͨ·ʹ1)1ͱ+4ॻ͖·͢
ຊͷΰʔϧ
&4ΛΔ
ͦͯ͠໌͔Βॻ͘
ൃදΛௌ͘લͷ༻ޠू w &4ʜ&$."4DSJQU w +4ʜ+BWB4DSJQU
"HFOEB w )JTUPSZPG&$."4DSJQU w "CPVU&4 w )PXUPXSJUF&4 w 5SZXSJUJOH&4
)JTUPSZPG&$."4DSJQU
ࠓ&4ͷ͓ษڧձ &4ͱ+4ͷྺ࢙Λ ͬ͘͟ΓৼΓฦΔ
w &$."4DSJQU*OUFSOBUJPOBMͷఆΊΔ +BWB4DSJQUͷ༷ w ༷ʹԊ࣮ͬͯ͞ΕΔͷ͕+BWB4DSJQU w વɺෳ࣮ଘࡏ͢Δ w વɺ༷ʹै͏ٛͳ͍ ͦͦ&$."4DSJQUͱ
&$."4DSJQU༷ +BWB4DSJQU࣮ ͭ·Γ
&$."4DSJQU༷ +BWB4DSJQU࣮ ͭ·Γ ̃ㅳ䍖Ԋ㯸սⶨմՅՖ嫥Մնָֈ֘խԭն
d&$."4DSJQU w &4Ҏલʜང͔ੲ w &4ʜࠓͷݸલʹ͋ͨΔ࣮ d*& w &4ʜ༷ଘࡏ͢ΔͷͷɺͲͷϕϯμʔ࣮ͤ ͣਁಁ͠ͳ͔ͬͨ
w ͜͜ΒΜΑ΄Ͳͷ͜ͱ͕ແ͍ݶΓ৮Δ͜ͱͳ͍ ͣ w ৮Βͳ͖Ό͍͚ͳ͍ํ͍ͨΒೆແ
&$."4DSJQU w &4ͷͭલ w *&Ҏ߱ɺϞμϯϒϥβͰಈ͘Έͳ͞ΜͷΑ͘ Δ+BWB4DSJQUʹ࠷͍ۙͷ w ͔͠͠&4ʹʮͲ͏ͯ͜͠͏ͳͬͨʯ༷͕ ଟ͔ͬͨ
w ҉ͷάϩʔόϧม w ϨΩγΧϧείʔϓ w ίʔϧόοΫࠈ w UIJTࢀর w FUD
&4ͷͭΒ͍༷
UIJT var cat = { name: 'tama', say: function ()
{ console.log(this.name); // ‘tama’ function say() { console.log(this.name); // ?? } say(); } }; cat.say();
UIJT var cat = { name: 'tama', say: function ()
{ console.log(this.name); // ‘tama’ function say() { console.log(this.name); // undefined } say(); } }; cat.say();
ίʔϧόοΫࠈ asyncOne('hoge', function (res, err) { asyncTwo(res, function (res, err)
{ asyncThree(res, function (res, err) { asyncFour(res, function (res, err) { asyncFive(res, function (res, err) { console.log(res); // ඇಉظϚγϚγ }); }); }); }); });
҉ͷάϩʔόϧม var show = function () { var name =
'sota1235'; var age = (function (now) { birthday = 1992; return now - birthday; })(2016); console.log(name + ' is ' + age + ' years old.'); }; show(); // ‘sota1235 is 24 years old.’ /** after 100000 lines... */ console.log(name); // undefined console.log(age); // undefined console.log(birthday); // ??
҉ͷάϩʔόϧม var show = function () { var name =
'sota1235'; var age = (function (now) { birthday = 1992; return now - birthday; })(2016); console.log(name + ' is ' + age + ' years old.'); }; show(); // ‘sota1235 is 24 years old.’ /** after 100000 lines... */ console.log(name); // undefined console.log(age); // undefined console.log(birthday); // 1992
None
ͦ͏ͩɺ+4ΛΊΑ͏
"MU+4ͷొ w $44Ͱ͍͏4BTTͱ͔4UZMVTΈ͍ͨͳͷ w ίϯύΠϧ͢ΔͱϒϥβͰಈ͘ͷ͕ు͖ग़͞ΕΔ w +4Λָʹॻ͖͍ͨਓ͕ͨͪ৭ΜͳΛ࡞Γ࢝Ίͨ
ओͳ"MU+4 Πϯσϯτݴޠ࠷ߴʂ άϩʔόϧมͱ͔ࢮΜͰཉ͍͠
ओͳ"MU+4 ܕͦ͜ࢸߴ
ओͳ"MU+4 ·ͩ+BWB4DSJQUͰফͯ͠ΔΜͰ͔͢
ओͳ"MU+4
ओͳ"MU+4
ओͳ"MU+4
ओͳ"MU+4
ओͳ"MU+4 ͜Εͧࠞಱʜ
͑ɺ·ͩੜ+4ফͯ͠Δͷʁظ w &4ͷҋʹᙺΕΛΒͨ͠+4FSʹΑΔ"MU+4େ ઓ૪ w +4ͷସΛࢦͨ͠ΓଞݴޠΛ+4ʹίϯύΠϧ ͠Α͏ͱͨ͠Γ w ਓଵଦͳ͍͖ͷ
͑ɺ·ͩੜ+4ফͯ͠Δͷʁظ w "MU+4ͷొͰ&4ͷҋΛආ͚ͯ+4Λॻ͘͜ͱ ൺֱత༰қʹͳͬͨ w ͱ͍͑ɺϒϥβͰಈ͘Θ͚Ͱͳ͍ͷͰࠜ ຊղܾʹࢸΒͳ͍ w ୭͕ٹੈओΛͪΜͰ͍ͨʜ
ͦͯ࣌͠
ٹੈओര
"CPVU&4
&4 w &4͔Β࣮ʹͿΓͷϦϦʔε w &4ͱݺΕ͕ͯͨਖ਼໊ࣜশ&4 w ϒϥβॲཧೳྗͷ্ɺϑϩϯτͷൃలʹ ͍ຬΛ࣋ͯ͠ొ w ཁ͢Δʹधཁ͕͋Δ͔Β༷ࡦఆ͕ਐΜͩ
υϥεςΟοΫͳมߋ w ৽نػೳ͕ඇৗʹଟ͍ w ࠓ·Ͱͷ&4ͷͷଟ͘Λղܾ w $P⒎FF4DSJQUΛ͡Ίͱ͢Δ"MU+4ʹେ͖͘Ө ڹΛड͚͍ͯΔ w $MBTTߏจɺ"SSPX'VODUJPOFUDʜ
ه๏Λ͍͔ͭ͘հ
MFU w ϒϩοΫείʔϓม͕એݴՄೳʹͳͬͨ w ࠶ೖՄೳͳͷͰGPSจத͚ͩ༗ޮͳΧϯτม ͷ࣮ݱ͕Մೳʹ
MFU for (let i = 0; i < 5; i++)
{ console.log(i); } console.log(i); // ReferenceError let name = 'sota1235'; // ࠶ೖՄ name = 'sota1236'; // ࠶એݴෆՄ let name = 'sota1236'; // TypeError
DPOTU w ఆͷએݴ͕Մೳʹͳͬͨ w ࠶ೖෆՄ w WBSऴྃͷ͓Βͤ w มએݴݪଇશͯDPOTUͰɺͱ͍͏+4FSଟ͍
DPOTU const version = 2015; version = 2016; // TypeError
const version = 2017; // TypeError
BSSPXGVODUJPO w ؔͷলུه๏ w ؔͷॲཧ͕ߦ͔͠ͳ͚Ε҉ͷSFUVSO Մೳ w είʔϓͷUIJTΛҾ͖ܧ͙ʹҙ
BSSPXGVODUJPO // ES5 var func = function (food, name) {
console.log(name + ' want to eat ' + food); }; // ES2015 const func = (food, name) => { console.log(name + ' want to eat ' + food); }; // Ҿ͕1ͭͷ߹ɺؙׅހলུՄೳ const func2 = food => { console.log('I want to eat ' + food); }; // ॲཧ͕ҰߦͳΒதׅހলུՄೳ // ධՁ͞Ε͕ͨ҉ͷreturnͱͳΔʹҙ const func3 = food => console.log('I want to eat ' + food);
EFGBVMUQBSBNFUFSWBMVFT w ؔͷσϑΥϧτҾͷࢦఆ͕Մೳʹͳͬͨ
EFGBVMUQBSBNFUFSWBMVFT // lastͷσϑΥϧτΛࢦఆ const getName = (first, last = 'Sugiura')
=> { return last + ' ' + first; }; // มʹೖΔͷԿͰࢦఆՄೳ const concat = (list, subList = ['c']) => { return list.concat(subList); }; concat(['a', 'b']); // ['a', 'b', 'c'] concat(['a', 'b'], ['d']); // ['a', 'b', 'd']
TQSFBEPQFSBUPS w ྻɺΦϒδΣΫτΛϧʔϓͤͣల։Ͱ͖ΔΑ ͏ʹ w ྻ࿈݁ՄมҾͷ࣮͕༰қʹͳͬͨ w ԋࢉࢠΛར༻͢Δ
TQSFBEPQFSBUPS // ྻΛల։ const a = ['a', 'b', 'c']; const
b = [...a, 'd']; // ['a', 'b', 'c', 'd']; // ՄมҾ function print(...names) { console.log(names.join(' ')); }; print('es5', 'es6', 'es7'); // 'es5 es6 es7'
QBSBNFUFSDPOUFYUNBUDIJOH w 0CKFDU͔ΒಛఆͷΩʔΛࢦఆ͠มʹೖ͢Δ w 0CKFDUΛมؔͷҾʹϚοϐϯάͰ͖Δ
QBSBNFUFSDPOUFYUNBUDIJOH const meal = { breakfast : 'bread', lunch :
'pasta', dinner : 'curry', }; const { breakfast, lunch } = meal; console.log(breakfast); // 'bread' console.log(lunch); // 'pasta' function printLunch({ lunch }) { console.log('Lunch is ' + lunch); }; printLunch(meal); // 'Lunch is pasta'
DMBTT w $MBTTߏจ͕Մೳʹͳͬͨ w ࠓ·ͰͲ͓ΓQSPUPUZQFϕʔεͰͷදهՄೳ w ͕ɺಛஈϝϦοτͳ͍ͷͰ$MBTTߏจͰΑ͍ w QSPUPUZQFͷཧղ͓ͯ͘͠͠
DMBTT class Dog { constructor(name, age) { this.name = name;
this.age = age; } printName() { console.log(this.name); } static bark() { console.log('Wow'); } get age() { return this.age; } } Dog.bark(); // 'Wow' const dog = new Dog('chiwawa', 18); dog.printName(); // 'chiwawa'; console.log(dog.age); // 18
WBMVFFYQPSUJNQPSU w ϑΝΠϧͷϞδϡʔϧԽ͕Մೳʹͳͬͨ w &4ʹແ͔ͬͨػೳ w OPEFKT͔Β༌ೖͨ͠ػೳ
WBMVFFYQPSUJNQPSU // module.js export default function cat() { console.log('myaw'); }
export config = { env: 'develop', }; // sample.js import cat, { config } from './module'; cat(); // 'myaw' console.log(config.env); // 'develop';
1SPNJTF w ඇಉظॲཧΛྃ࣌ʹղܾ͢ΔΦϒδΣΫτ w &4ͷ࣌Ͱ࣮͘͞Ε͍͕༷ͯͨతʹ &4ʹؚ·ΕΔ w ίʔϧόοΫɺμϝɻθολΠɻ
1SPNJTF // Not good :( asyncFirst('hoge', result => { asyncSecond(result,
result => { asyncThird(result, result => { console.log(result); }); }); }); // Good promise :) asyncFirst('hoge') .then(asyncSecond) .then(asyncThird) .then(result => console.log(result)); .catch(err => console.error(err));
ͦͷଞେ w ͜͜Ͱհͨ͠ͷ͘͘͝͝Ұ෦ w ඇৗʹ৽ػೳ͕ଟ͍ͷͰίπίπ֮͑Α͏ w (JU)VCͰ·ͱΊͯ͘ΕͯΔϖʔδͰ߲͑ͨ Βݸ͋ͬͨ w
IUUQTHJUIVCDPNMVLFIPCBOFTGFBUVSFT
)PXUPXSJUF&4
?P? &4࠷ߴʂ໌͔Βॻ͍ͧ͘ʂ
㵺㱿㵺 ɻP ͋Εɺϒϥβ࣮͍͍ͭͯΔͷʁ
cIUUQTLBOHBYHJUIVCJPDPNQBUUBCMFFTc ᵎ ☋ʆ ᵊࡾ
‧▓▒░ `Т` ░▒▓‧͏Θ͋͋͋͋
ϒϥβϕϯμʔ w ͜͜Ͱ࠶ͼཱ͔ͪͩΔϕϯμʔ w ϒϥβʹΑͬͯ&4ͷରԠঢ়گʹࠩҟ͕ ͋Δ
ϒϥβରԠঢ়گ w *&֎ w &EHF ''࠷৽൛ͳΒ w $ISPNF 0QFSB࠷৽൛ͳΒ w
εϚϗ࠷େͱ݁ߏյ໓త ࣌IUUQTLBOHBYHJUIVCJPDPNQBUUBCMFFT
Α͘Θ͔ΒΜɻߦͰ w ٸͳ༷มߋʹ w ϒϥβ։ൃ͕͍͚ͭͣ w &4͕ಈ͔ͳ͍
Α͘Θ͔ΒΜɻߦͰ w ٸͳ༷มߋʹ w ϒϥβ։ൃ͕͍͚ͭͣ w &4͕ಈ͔ͳ͍
Α͘Θ͔ΒΜɻߦͰ w ٸͳ༷มߋʹ w ϒϥβ։ൃ͕͍͚ͭͣ w &4͕ಈ͔ͳ͍
#BCFM w &4Λ&4ʹมͯ͘͠ΕΔτϥϯεύΠ ϥʔ w $P⒎FF4DSJQU5ZQF4DSJQUΛॻ͍ͨΒ&4ʹ ม͑ͯ͘ΕΔͷͱಉ͡Α͏ͳϊϦ w *&·ͰରԠͨ͠ίʔυΛు͍ͯ͘ΕΔ
#BCFM &4 &4 ϒϥβͰಈ͘ #BCFMͰ ม͞ΕΔ
͑ɺ"MU+4͡ΌΜ w ϑϩϯτ+4ͱͯ͠ಈ͔͢खॱ͔֬ʹ"MU+4ͱ Ұॹ w ίʔυॻ͘ˠ&4ʹม w ҧ͏ͷॻ͘ίʔυ͕&$."ඪ४Ͱ͋Δ͜ͱ w ͍ͣΕશϒϥβ͕ಈ͘
ͣͷ ίʔυ͕ॻ͚Δ
#BCFM༻࣌ͷҙ w #BCFM͚ͩͰ͑ͳ͍&4ͷ༷͋Δ w 1SPYZ 4ZNCPM w ͭ·Γ&4Ͱ࠶ݱͰ͖ͳ͍ͷ w #BCFM͚ͩͰ&4ΛֶͿ͖Ͱͳ͍
w #BCFM࡞ऀͦ͏ݴͬͯΔ
#BCFM༻࣌ͷҙ w ݹ͍*&ͷରԠΛࢹʹೖΕΔࡍ৻ॏʹͳΔ͖ w 1PMZpMMϥΠϒϥϦͰ*&͙Β͍·Ͱ͍͚ͦ ͏͕ͩݕূ͕ඞཁͦ͏ w ϞδϡʔϧػೳΛϑϩϯτ࣮ʹམͱ͍ͨ͠ͳΒ ϞδϡʔϧίϯύΠϥʔඞਢ w
#SPXTFSJGZ 8FCQBDL͋ͨΓʁ
ͱ͍͑ w ʮϑϩϯτͰ&4ͷԸܙʹ͔͋Γ͍ͨʯ ͷͰ͋Ε#BCFM͑͏ w धཁ͋ΔͷͰอकͷ৺ແ͍ w &4Ҏ߱αϙʔτ͞ΕΔ༷
5SZXSJUJOH&4
໌͔Β&4Λॻ͜͏ʂ ʮࠓॻ͍ͨ&4ΛϒϥβͰಡΈࠐ·ͤͨΒಈ͘ʂʯ Λࢦ͢
Լ͝͠Β͑ w &4͕ॻ͚ͳ͍ਓ·ͣ&4Λֶͼ·͠ΐ͏ w #BCFM͕͢Δͷ&4Λ&4Ͱ࠶ݱ͢Δ͜ͱ w ͭ·Γ&4Ͱ࠶ݱͰ͖ͳ͍ػೳ͑ͳ͍ w ͳͥͦ͏͖͔͢͜ΕΛಡΉͱϋϥΦν͢Δ w
IUUQB[VHJUIVCJPTMJEFOPEFKTFTIPXUPMFBSOIUNM
ඞཁͳࡐྉ w /PEFKTOQNݸ w #BCFMݸ w λεΫϥϯφʔ͓ΈͰ
4UFQ&4Λ&4ʹม͢Δ
4UFQ ͦͷલʹʜ &4Λͤʹॻͨ͘Ίͷ ίπΛ͓ڭ͑͠·͢
4UFQ ͦͷલʹʜ ϏϧυڥશͯύΫΕ
ͳͥύΫΔͷ͔ w &4ͷࣝࠓޙͣͬͱੜ͖Δ w &4Λม͢ΔͨΊͷ͍ࣝͣΕ͍Βͳ ͘ͳΔ w
ͳͥύΫΔͷ͔ w ৮ͬͨ͜ͱ͋ΔਓͳΒΘ͔Δ͚ͲOQNͬͯ݁ߏ ͭΒ͍ w ม͢Δ͚ͩͰίέΔਓίέΔ w ؤு͍͍͚ͬͯͲίϨʹؔͯ͠ڊਓͷݞʹ Δ͖ͱ͍͏ͷ͕ࢲͷॴײ
ͬͯ͜ͱͰ w ԶͷࢡΛӽ͑ͯߦ͚ʂ w IUUQTHJUIVCDPNTPUBFT@TUBSUFS@LJU w Ͱ͖Δ͜ͱ w &4Λ&4ʹม w
Ϣχοτςετ͕&4Ͱॻ͚Δˍಈ͘
ᶃ&4Λม w #BCFMपΓͷπʔϧΛOQNͰམͱ͢ w ϏϧυεΫϦϓτΛॻ͘ w QBDLBHFKTPOPSλεΫϥϯφʔ w ͓ΈͰ w
࣮ߦ͢Δ
ᶄϢχοτςετΛಈ͔͢ w #BCFMपΓͷπʔϧΛམͱ͢ w ಈ͔͢ w Ҏ্ʂ w ͨͩ͠ɺϒϥβͰ࣮ߦ͍ͨ͠߹มͷ ඞཁ͋Γ
NPDIBͱ͔
͙͢ʹॻ͚ͨʂ w ϏϧυεΫϦϓτॻ͍ͯอकͷ͋Δ͚Ͳ ୭͔͕େؤுͬͯΔ w ձࣾͷΈΜͳ͕ॻ͖࢝ΊΕQKUԣஅͯ͠ࢼߦࡨ ޡ͢Ε͍͍ w ઃఆपΓ໎ΘͣύΫΖ͏
4UFQ&4ΛֶͿ
4UFQ&4ΛֶͿ w ಡΜͰֶͿ w τϨʔχϯάͰֶͿ w ౖΒΕֶͯͿ
ಡΜͰֶͿ w ༷ॻΛಡΉ w IUUQXXXFDNBJOUFSOBUJPOBMPSH QVCMJDBUJPOTTUBOEBSET&DNBIUN
ಡΜͰֶͿ w FTGFBUVSFT w IUUQFTGFBUVSFTPSH w &4ͱͷൺֱͰհ͞Ε͍ͯͯඇৗʹΑ͍
τϨʔχϯάͰֶͿ w UPXFSPGCBCFMͱ͍͏OQN͕͋Δ w ৄ͘͠࡞ऀهࣄΛ w IUUQZPTVLFGVSVLBXBIBUFOBCMPHDPNFOUSZ
τϨʔχϯάͰֶͿ
ౖΒΕֶͯͿ w &4-JOUΛར༻͢Δ w &4ͳॻ͖ํΛڧ͍ΔϝδϟʔͳDPOpHΛ མͱͯ͠͏ w ൃݟ͕ଟ͍ͷͰݸਓతʹਪͯ͠Δ w "JSCOC
(PPHMF͋ͨΓͷDPOpH͕Φεεϝ
&4-JOU"JSCOC
&4-JOU"JSCOC
·ͱΊ w &4Λॻͨ͘ΊͷڥਓͷΛύΫΖ͏ w ه๏ͪΐͬͱ֮ͣͭ͑Α͏ w &4΄΅ಈ͘ͷͰ·ͣDPOTUΛ͏ॴ͔ Βʜͱ͍͏ײ֮Ͱ͓̺
ͪͳΈʹ w ҎԼͷͷ#BCFMඞཁͳ͍Ͱ͢ w OPEFKTWd w Ϟμϯϒϥβ $ISPNF '' &EHF͋ͨΓ
w ΧόʔͰͳ͍͚Ͳ͍͍ͩͨಈ͘ͷͰ࿅ श࣌ͪ͜Βͷํ͕Φεεϝ
༨ஊɿ͜Ε͔Βͷ&4
ࠓޙɺ&4Ͳ͏ͳΔͷ͔ w &4ͷେྔΞοϓσʔτܾΊΔํπϥΠ w ͜Ε͔Βຖࡉ͔͘ΞοϓσʔτΛ͠Α͏ͱ͍ ͏ྲྀΕʹͳ͍ͬͯΔ w &4 &4ʜ w
&4͔ͭ͠ػೳ૿͑ͳ͍༧ఆͩΑʂ
&4OFYU w ࣍ظʹͰΔ&4ͷ༷Λ·Δͬͱ&4OFYUͱݺͿ w #BCFMͷQSFTFUΛར༻͢Δ͜ͱͰকདྷͷ༷Λ ઌऔΓͰ͖Δ w ڵຯͷ͋Δํ୭Ͱ࣍ظ༷ΛఏҊͰ͖Δͷ ͰͬͯΈΑ͏
&4Ͱ ࠷ߴͷ+4ϥΠϑΛ