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
530
今から始める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.4k
20220926_セキュリティチームの今_for_Drs._Prime_公開用.pdf
sota1235
0
98
再発防止策を考える技術 / #phpconsen
sota1235
10
3.8k
How to choose the best npm module for your team?
sota1235
9
570
Realtime Database for high traffic production application
sota1235
7
3.9k
Road to migrate JP Web as a microservice
sota1235
4
1.6k
インターフェース再入門 / Think Interface again
sota1235
6
10k
再発防止策を考える技術 #phpconfuk_rej
sota1235
1
1.2k
Update around Firebase #io18
sota1235
3
4.3k
Other Decks in Programming
See All in Programming
お前もAI鬼にならないか?👹Bolt & Cursor & Supabase & Vercelで人間をやめるぞ、ジョジョー!👺
taishiyade
7
4.2k
5分で理解する SOLID 原則 #phpcon_nagoya
shogogg
1
300
Flutter × Firebase Genkit で加速する生成 AI アプリ開発
coborinai
0
170
GAEログのコスト削減
mot_techtalk
0
140
『GO』アプリ データ基盤のログ収集システムコスト削減
mot_techtalk
0
150
メンテが命: PHPフレームワークのコンテナ化とアップグレード戦略
shunta27
0
300
GoとPHPのインターフェイスの違い
shimabox
2
210
負債になりにくいCSSをデザイナとつくるには?
fsubal
10
2.6k
Rails 1.0 のコードで学ぶ find_by* と method_missing の仕組み / Learn how find_by_* and method_missing work in Rails 1.0 code
maimux2x
1
130
複数のAWSアカウントから横断で 利用する Lambda Authorizer の作り方
tc3jp
0
110
AIの力でお手軽Chrome拡張機能作り
taiseiue
0
190
DRFを少しずつ オニオンアーキテクチャに寄せていく DjangoCongress JP 2025
nealle
2
260
Featured
See All Featured
What's in a price? How to price your products and services
michaelherold
244
12k
RailsConf 2023
tenderlove
29
1k
Mobile First: as difficult as doing things right
swwweet
223
9.4k
Building a Modern Day E-commerce SEO Strategy
aleyda
38
7.1k
jQuery: Nuts, Bolts and Bling
dougneiner
63
7.7k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
30
4.6k
Intergalactic Javascript Robots from Outer Space
tanoku
270
27k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
44
7k
StorybookのUI Testing Handbookを読んだ
zakiyama
28
5.5k
The Cost Of JavaScript in 2023
addyosmani
47
7.4k
Navigating Team Friction
lara
183
15k
The Pragmatic Product Professional
lauravandoore
32
6.4k
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ϥΠϑΛ