Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
今から始めるES2015
Search
Sota Sugiura
June 16, 2016
Programming
570
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
今から始めるES2015
社内勉強会にて発表した今からES2015を始める人のための資料です。
Sota Sugiura
June 16, 2016
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
2k
20220926_セキュリティチームの今_for_Drs._Prime_公開用.pdf
sota1235
0
220
再発防止策を考える技術 / #phpconsen
sota1235
10
4.1k
How to choose the best npm module for your team?
sota1235
9
680
Realtime Database for high traffic production application
sota1235
7
4.3k
Road to migrate JP Web as a microservice
sota1235
4
1.8k
インターフェース再入門 / Think Interface again
sota1235
6
11k
再発防止策を考える技術 #phpconfuk_rej
sota1235
1
1.4k
Update around Firebase #io18
sota1235
3
4.5k
Other Decks in Programming
See All in Programming
コードレビューのボトルネックを"する側"と"される側"の両面から解消する
yub0n
2
1.5k
WebRTC映像をAirPlayに対応させる挑戦.pdf
monolithic_adam
0
340
CodeRabbitの効果検証と過ごしてみた3ヶ月
armondando
0
150
Ghostty + Neovimで作る 透明でカッコ良い開発環境
j341nono
0
150
ジョジョの世界をXRで再現する
mofurune
0
130
モデルのリファクタリングが難しいと思ったら、そもそも複雑だったのはビジネス仕様だった ? / is-the-business-domain-the-real-complexity
hatsu38
0
450
[2026-09-26]空論ジェネリックプロセス~テスト資産とAIで紡ぐ、再現可能なパフォーマンスチューニングの話~
tosite
0
260
wkhtmltopdfの次どうするか問題2026
willnet
2
1.8k
The Rails Doctrine Decade
koic
2
500
難しいけど、読めた。- OSSの入口に立った話。
sts11142
0
140
機械に任せるテスト、人が見るテスト ⽣成AIで引き直した、運⽤保守フェーズの線引き
dske104
0
160
APNsからLive Activityを開始する話
yumnumm
0
150
Featured
See All Featured
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Paper Plane (Part 1)
katiecoart
PRO
2
11k
Thoughts on Productivity
jonyablonski
76
5.4k
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
710
A designer walks into a library…
pauljervisheath
211
25k
The SEO identity crisis: Don't let AI make you average
varn
0
580
Music & Morning Musume
bryan
48
7.4k
How Software Deployment tools have changed in the past 20 years
geshan
2
35k
The untapped power of vector embeddings
frankvandijk
2
1.9k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
320
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
400
For a Future-Friendly Web
brad_frost
183
10k
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ϥΠϑΛ