å¼ã¨æ¼ç®å
ãã®ç¯ã§ã¯ãJavaScript è¨èªã®ãã¹ã¦ã®æ¼ç®åãå¼ããã¼ã¯ã¼ãã«ã¤ãã¦è¨è¿°ãã¦ãã¾ãã
å¼ã¨æ¼ç®åï¼ã«ãã´ãªã¼å¥ï¼
ã¢ã«ãã¡ãããé ã®ä¸è¦§ã¯å·¦å´ã®ãµã¤ããã¼ãã覧ãã ããã
åºæ¬å¼
JavaScript ã§ã®åºæ¬çãªãã¼ã¯ã¼ãã¨ä¸è¬çãªå¼ã§ãããããã®å¼ã¯æãé«ãåªå é ä½ãæã¡ã¾ãï¼æ¼ç®åãããé«ãï¼ã
this-
thisãã¼ã¯ã¼ãã¯é¢æ°ã®å®è¡ã³ã³ããã¹ãã示ãç¹å¥ãªããããã£ã§ãã - ãªãã©ã«
-
åºæ¬çãª
nullãè«çå¤ãæ°å¤ãæååã®ãªãã©ã«ã§ãã []-
é ååæååã¾ãã¯ãªãã©ã«æ§æã§ãã
{}-
ãªãã¸ã§ã¯ãåæååã¾ãã¯ãªãã©ã«æ§æã§ãã
function-
functionãã¼ã¯ã¼ãã¯é¢æ°å¼ãå®ç¾©ãã¾ãã class-
classãã¼ã¯ã¼ãã¯ã¯ã©ã¹å¼ãå®ç¾©ãã¾ãã function*-
function*ãã¼ã¯ã¼ãã¯ã¸ã§ãã¬ã¼ã¿ã¼é¢æ°å¼ãå®ç¾©ãã¾ãã async function-
async functionã¯éåæé¢æ°å¼ãå®ç¾©ãã¾ãã async function*-
async function*ãã¼ã¯ã¼ãã¯éåæã¸ã§ãã¬ã¼ã¿ã¼é¢æ°å¼ãå®ç¾©ãã¾ãã /ab+c/i-
æ£è¦è¡¨ç¾ãªãã©ã«æ§æã§ãã
`string`-
ãã³ãã¬ã¼ããªãã©ã«æ§æã§ãã
( )-
ã°ã«ã¼ãåæ¼ç®åã§ãã
左辺å¼
左辺å¤ã¯ãä»£å ¥ã®å¯¾è±¡ã«ãªãã¾ãã
- ããããã£ã¢ã¯ã»ãµã¼
-
ããããã£ã¢ã¯ã»ã¹æ¼ç®åã¯ãªãã¸ã§ã¯ãã®ããããã£ãã¡ã½ããã¸ã®ã¢ã¯ã»ã¹ (
object.propertyãobject["property"]) ãæä¾ãã¾ãã ?.-
ãªãã·ã§ãã«ãã§ã¼ã³æ¼ç®åã¯ãåç §ããã«å¤ï¼
nullã¾ãã¯undefinedï¼ã§ãã£ãå ´åã«ã¨ã©ã¼ãçºçããã代ããã«undefinedãè¿ãã¾ãã new-
newæ¼ç®åã¯ã³ã³ã¹ãã©ã¯ã¿ã¼ã®ã¤ã³ã¹ã¿ã³ã¹ã使ãã¾ãã new.target-
ã³ã³ã¹ãã©ã¯ã¿ã¼å ã§
new.targetã使ããã¨ã§ãnewã«ãã£ã¦å¼ã³åºãããã³ã³ã¹ãã©ã¯ã¿ã¼ãåç §ã§ãã¾ãã import.meta-
ã³ã³ããã¹ãã«ä¾åããã¡ã¿ãã¼ã¿ã JavaScript ã¢ã¸ã¥ã¼ã«ã¸å ¬éãããªãã¸ã§ã¯ãã§ãã
super-
superãã¼ã¯ã¼ãã¯è¦ªãªãã¸ã§ã¯ãã®ã³ã³ã¹ãã©ã¯ã¿ã¼ãå¼ã³åºãããã親ãªãã¸ã§ã¯ãã®ããããã£ã«ã¢ã¯ã»ã¹ããããããã¨ãã§ãã¾ãã import()-
import()æ§æã使ãã¨ãã¢ã¸ã¥ã¼ã«ãéåæãã¤åçã«ãæ½å¨çã«ã¢ã¸ã¥ã¼ã«ã§ãªãç°å¢ã«èªã¿è¾¼ããã¨ãã§ãã¾ãã import.defer()-
import.defer()æ§æã使ç¨ããã¨ãã¢ã¸ã¥ã¼ã«ãåçã«èªã¿è¾¼ã¿ãè¿ãããåå空éã®ããããã£ã«ã¢ã¯ã»ã¹ãããã¾ã§ãåæçãªè©ä¾¡ãé å»¶ããã¾ãã import.source()-
import.source()æ§æã使ç¨ããã¨ãä¾åé¢ä¿ãèªã¿è¾¼ãã ãããªã³ã¯ããããè©ä¾¡ããããããã¨ãªããã¢ã¸ã¥ã¼ã«ã®ã³ã³ãã¤ã«æ¸ã¿ã½ã¼ã¹ã表ããªãã¸ã§ã¯ããçæããã¾ãã
ã¤ã³ã¯ãªã¡ã³ãã¨ãã¯ãªã¡ã³ã
å¾ç½®/åç½®ã®ã¤ã³ã¯ãªã¡ã³ãæ¼ç®åã¨å¾ç½®/åç½®ã®ãã¯ãªã¡ã³ãæ¼ç®åã§ãã
åé æ¼ç®å
åé æ¼ç®ã¯ãåä¸ã®ãªãã©ã³ãã«ããæ¼ç®ã§ãã
delete-
deleteæ¼ç®åã¯ããªãã¸ã§ã¯ãããããããã£ãåé¤ãã¾ãã void-
voidæ¼ç®åã¯ãå¼ã®è¿å¤ãç ´æ£ãã¾ãã typeof-
typeofæ¼ç®åã¯ãä¸ãããããªãã¸ã§ã¯ãã®åãå¤å¥ãã¾ãã +-
åé æ£å¤æ¼ç®åã¯ããã®ãªãã©ã³ããæ°å¤åã«å¤æãã¾ãã
--
åé è² å¤æ¼ç®åã¯ããã®ãªãã©ã³ããæ°å¤åã«å¤æãã¦æ£è² ãå転ãã¾ãã
~-
ãããå¦å®æ¼ç®åã§ãã
!-
è«çå¦å®æ¼ç®åã§ãã
await-
éåæé¢æ°å¼ã®åæ¢/åéã¨ããããã¹ã®å±¥è¡/æå¦ãå¾ ã¡ã¾ãã
ç®è¡æ¼ç®å
ç®è¡æ¼ç®åã¯ãæ°å¤ï¼ãªãã©ã«ã¾ãã¯å¤ï¼ããªãã©ã³ãã¨ãã¦åãã1 åã®æ°å¤ãè¿ãã¾ãã
é¢ä¿æ¼ç®å
æ¯è¼æ¼ç®åã¯ãªãã©ã³ãåå£«ãæ¯è¼ãããã®æ¯è¼çµæãçãã©ããã«åºã¥ãã¦è«çå¤ãè¿ãã¾ãã
<(Less than)-
å°ãªãæ¼ç®åã§ãã
>(Greater than)-
大ãªãæ¼ç®åã§ãã
<=-
å°ãªãã¤ã³ã¼ã«æ¼ç®åã§ãã
>=-
大ãªãã¤ã³ã¼ã«æ¼ç®åã§ãã
instanceof-
instanceofæ¼ç®åã¯ããªãã¸ã§ã¯ããå¥ã®ãªãã¸ã§ã¯ãã®ã¤ã³ã¹ã¿ã³ã¹ãã©ãããå¤å¥ãã¾ãã in-
inæ¼ç®åã¯ãä¸ããããããããã£ããªãã¸ã§ã¯ããæã£ã¦ãããã©ãããå¤å¥ãã¾ãã
ã¡ã¢:
=> ã¯æ¼ç®åã§ã¯ãªããã¢ãã¼é¢æ°ã®ããã®è¨æ³ã§ãã
ç夿¼ç®å
ç夿¼ç®åã®è©ä¾¡çµæã¯å¸¸ã«ãæ¯è¼ãçãã©ããã«åºã¥ãã¦è«çåã®å¤ã«ãªãã¾ãã
ãããã·ããæ¼ç®å
ãªãã©ã³ãã®ãã¹ã¦ã®ããããã·ããæ¼ç®ãã¾ãã
ãã¤ããªã¼ãããæ¼ç®å
ãããæ¼ç®åã¯ããã®ãªãã©ã³ãã 32 ãããï¼0 㨠1ï¼ã®ä¸¦ã³ã¨ãã¦æ±ããæ¨æºã® JavaScript æ°å¤ãè¿ãã¾ãã
ãã¤ããªã¼è«çæ¼ç®å
è«çæ¼ç®åã¯è«çå¤ï¼ãã¼ã«å¤ï¼ã«ããã¦å®è£ ãããç絡è©ä¾¡ãããã¾ãã
æ¡ä»¶ï¼ä¸é ï¼æ¼ç®å
(æ¡ä»¶ ? çã®å ´å : è² ã®å ´å)-
ãã®æ¡ä»¶æ¼ç®åã¯ãæ¡ä»¶ã®è«çå¤ãåºã«ã2 ã¤ã®å¤ã®ãããã䏿¹ãè¿ãã¾ãã
ä»£å ¥æ¼ç®å
ä»£å ¥æ¼ç®åã¯ãå³ãªãã©ã³ãã«åºã¥ãã¦ãå¤ãå·¦ãªãã©ã³ãã«ä»£å ¥ãã¾ãã
=-
ä»£å ¥æ¼ç®åã§ãã
*=-
ä¹ç®å¤ãä»£å ¥ãã¾ãã
/=-
é¤ç®å¤ãä»£å ¥ãã¾ãã
%=-
å°ä½å¤ãä»£å ¥ãã¾ãã
+=-
å ç®å¤ãä»£å ¥ãã¾ãã
-=-
æ¸ç®å¤ãä»£å ¥ãã¾ãã
<<=-
å·¦ã·ããããå¤ãä»£å ¥ãã¾ãã
>>=-
å³ã·ããããå¤ãä»£å ¥ãã¾ãã
>>>=-
符å·ãªãã®å³ã·ããããå¤ãä»£å ¥ãã¾ãã
&=-
ãããè«çç© (AND) ã®å¤ãä»£å ¥ãã¾ãã
^=-
ãããæä»çè«çå (XOR) ã®å¤ãä»£å ¥ãã¾ãã
|=-
ãããè«çå (OR) ã®å¤ãä»£å ¥ãã¾ãã
**=-
ã¹ãä¹å¤ãä»£å ¥ãã¾ãã
&&=-
è«çç©ä»£å ¥ã§ãã
||=-
è«çåä»£å ¥ã§ãã
??=-
è«çãã«å¤åä½ä»£å ¥ã§ãã
[a, b] = arr,{ a, b } = obj-
æ§é åè§£ã¯ãé åããªãã¸ã§ã¯ãã®ããããã£ããé åããªãã¸ã§ã¯ããªãã©ã«ã«ä¼¼ãæ§æã使ç¨ãã¦å¤æ°ã«ä»£å ¥ãã¾ãã
yield æ¼ç®å
ã¹ãã¬ããæ§æ
...obj-
ã¹ãã¬ããæ§æã使ç¨ããã¨ãé åãæååãªã©ã®å復å¯è½ãªãã¸ã§ã¯ããã 0 å以ä¸ã®å¼æ°ï¼é¢æ°å¼ã³åºãã®å ´åï¼ãè¦ç´ ï¼é åãªãã©ã«ã®å ´åï¼ãäºæ³ãããé ç½®ã§å±éãããã¨ãã§ãã¾ãããªãã¸ã§ã¯ããªãã©ã«ã§ã¯ãã¹ãã¬ããæ§æã¯ãªãã¸ã§ã¯ãã®ããããã£ãåæãã使ãããªãã¸ã§ã¯ãã«ãã¼ã¨å¤ã®ãã¢ã追å ãã¾ãã
ã«ã³ãæ¼ç®å
,-
ã«ã³ãæ¼ç®åã¯ãè¤æ°ã®å¼ãåä¸ã®æã§è©ä¾¡ããæå¾ã®å¼ã®çµæãè¿ããã¨ãã§ãã¾ãã
æ¼ç®åã¨ã¯
æã宣è¨ãå¼ã¨ã¯ã®ç¯ã§èª¬æããã¦ããããã«ãå¼ã¨ã¯ãè©ä¾¡ããã¦å¤ã¨ãªãåºæ¬çãªæ§æè¦ç´ ã§ããæã宣è¨ãå¼ã¯ãããããå¼ãåãå ¥ããç¹å®ã®ã¹ããããå®ç¾©ãããã¨ãã§ãã¾ããå¼ã®ä¸ã«ããã«ãã¹ããããå¼ãåãå ¥ããã¹ããããå«ã¾ãã¦ããå ´åãã¹ãããã§ã¯ãªãé¨åã¯æ¼ç®åã¨å¼ã°ãã¾ãã
ä¾ãã°ãå ç®å¼ã®æ§æã¯ å¼ + å¼ ã§ãï¼ä»æ§æ¸ãèªãã¨ããªãã©ã³ã㯠AdditiveExpression 㨠MultiplicativeExpression ã¨å¼ã°ãã¦ããããããã¯ã©ã¡ãã Expression ã®ãµãã»ããã§ãããããã¯ä»æ§æ¸ã«ããã¦åªå
é ä½ã¨çµåè¦åãå®ç¾©ããããã®å½¢å¼çãªãã®ã§ãããããã§ã¯é¢ä¿ããã¾ããï¼ã2 ã¤ã®å¼ã¹ããããé¤ãã°ãããã§å°å
¥ãããã³ã¼ãã¨ã³ãã£ãã£ã¯åã« +ãããªãã¡å ç®æ¼ç®åã«ä»ãªãã¾ãããåæ§ã«ãyield å¼ã®æ§æã¯ yield expression ã§ãããããyield ã¯æ¼ç®åã¨ãã¦ç¥ããã¦ãã¾ããè¨ãæããã°ãããããã®æ¼ç®å㯠1 ã¤ã®å¼ã«å¯¾å¿ãã¦ãã¾ãã
MDN ã§ã¯ãnull ã®ãããªã¹ãããã®ãªãå¼ã«ã¤ãã¦ãã以ä¸ã®ä¸ã®å®ç¾©ã«å¾ã£ã¦æ¼ç®åã¨è¦ãªãã¦ãã¾ãããå®éã«ã¯å¸¸ã«ããããåã«ãæ§æãããå¼ãã¨å¼ãã§ãã¾ãã
å¼ã¯ãå¿
ãããæ±ºã¾ã£ãæ°ã®ã¹ããããæã¤ã¨ã¯éãã¾ãããä¾ãã°ãé
åãªãã©ã«å¼ [å¼, å¼, å¼] ã¯ãä»»æã®æ°ã®å¼ã¹ããããæã¤ãã¨ãã§ãã¾ãã[,,] ã®é¨åã¯ãæ¼ç®åãã¨å¼ã°ãããã¨ãããã¾ããMDN ã§ã¯ãã®ç¨æ³ã¯é¿ãã¦ãã¾ãããHaskell ãªã©ã®é¢æ°åããã°ã©ãã³ã°è¨èªã§ã¯è¦ããããã¨ãããããããã¾ããã
æ¼ç®åã®å®ç¾©ã¯ãä»ã®ç¹å®ã®ã³ã¼ãã¨ã³ãã£ãã£ã¨çµã¿åãããã¨ãããææ§ã«ãªãã¾ããå¼ã®ä¸ã«å¼ã§ã¯ãªãã¹ããããå«ã¾ãã¦ããå ´åããå¼ã¨çµã¿åããããã³ã¼ãã¨ã³ãã£ãã£ãå¼ãæ§æããªãå ´åã¯ã©ããªãã®ã§ããããããã®å ´åã§ãããã®ã³ã¼ãã¨ã³ãã£ãã£ãæ¼ç®åã¨å¼ã¶ã®ã§ããããã
- ãªãã·ã§ãã«ãã§ã¼ã³ã®å¼
foo?.barã«ããã¦ãfooã¯å¼ã§ãããbarã¯èå¥åã§ãªããã°ãªããªãã®ã§ãå¤ã¨ãã¦è©ä¾¡ããããã¨ã¯ããã¾ããããã®å ´åã§ãã?.ã¯æ¼ç®åã¨è¦ãªãããã®ã§ããããã - ã¢ãã¼é¢æ°ã®å¼
arg => bodyã«ããã¦ãbodyã¯å¼ã§ããå ´åãããã¾ããï¼ãããã¯ã®æ¬ä½ã§ããå ´åãããã¾ãï¼ãargã¯åãªã弿°ãªã¹ãã§ãããã®å ´åã§ãã=>ã¯æ¼ç®åã¨è¦ãªãããã®ã§ããããï¼ - ã¹ãã¬ããæ§æ
...fooã«ããã¦ãfooã¯å¼ã§ãããå ¨ä½ã¨ãã¦ã¯å¼ã¨ã¯è¦ãªããã¾ãããããã¯ãå ¨ä½ã¨ãã¦å¤ã«è©ä¾¡ãããªãããã§ãããã®æ§æã¯ã颿°å¼ã³åºããé åãªãã©ã«ããªãã¸ã§ã¯ããªãã©ã«ã¨ãã£ãç¹å®ã®å¼ã«ããã¦ã®ã¿æå³ãæã¡ã¾ããããã§ããªãã...ãæ¼ç®åã¨è¦ãªãã®ã§ããããï¼
JavaScript ã§ãæ¼ç®åãã¨ããç¨èªã¯æç¢ºã«å®ç¾©ããã¦ããªããããMDN ã§ã¯æ±ºå®çãªçãã示ãã¦ãã¾ãããå½ãµã¤ãã§ã¯ããããã®æ§æããã¹ã¦ãæ¼ç®åãã¨ããã«ãã´ãªã¼ã«åé¡ãã¦ãã¾ãããããããæ£å¼ã«ãæ¼ç®åãã¨å¼ã¶ãã¨ã¯é¿ãã¦ãã¾ããæ¼ç®åã«é¢ããå¤ãã®æç¨ãªæ¦å¿µï¼åªå é ä½ãªã©ï¼ã¯ããã®æ£ç¢ºãªæ§è³ªã«ãããããããããã«ãé©ç¨ããã¾ãã