éç®å¼èéç®å
æ¬ç« ç¯è¨éäºææ JavaScript éç®å¼ãéç®å以åééµåã
éç®å¼èéç®ååé¡
以忝æåçæ¸ å®è«åèå·¦å´çå´éæ¬ã
主è¦éç®å¼
å¨ JavaScript ä¸åºæ¬çééµåèä¸è¬çéç®å¼ã
this-
thisééµåå¯ä»¥åèå·è¡å½æ¸çæå¨ä½ç½®ã function-
functionééµåå¯ä»¥å®ç¾©ä¸å彿¸éç®å¼ã class-
classééµåå¯ä»¥å®ç¾©ä¸åé¡å¥éç®å¼ã function*-
function*ééµåå¯ä»¥å®ç¾©ä¸å Generator 彿¸éç®å¼ yield-
æ«åèç¹¼çºä¸åç¢çå¨ (Generator) 彿¸ã
yield*-
è½äº¤å¦ä¸åç¢çå¨ (Generator) 彿¸æå¯è¿ä»£ (Iterable) çç©ä»¶ã
-
async function* -
async彿¸å¯ä»¥å®ç¾©ä¸åé忥彿¸éç®å¼ã -
await -
æ«åèç¹¼çºä¸åé忥彿¸ä¸¦çåæ¿è«¾ççµæ/æçµã
[]-
é£ååå§å/æ¸å¯«æ ¼å¼ã
{}-
ç©ä»¶åå§å/æ¸å¯«æ ¼å¼ã
/ab+c/i-
æ£è¦è¡¨ç¤ºæ³æ¸å¯«æ ¼å¼ã
( )-
åçµéç®åã
å·¦æééç®å¼
å·¦å´å¼çºè³¦å¼çç®æ¨ã
- Property accessors
-
æå¡éç®åå¯ååç©ä»¶çå±¬æ§ææ¹æ³ (
object.propertyandobject["property"])ã new-
newéç®åå¯ä»¥å»ºç«ä¸å建æ§å (Constructor) ç實ä¾ã - new.target
-
å¨å»ºæ§åä¸
new.targetå¯ä»¥åè被newå¼å«ç建æ§å (Constructor) ã super-
superééµåå¯ä»¥å¼å«ç¶å»ºæ§å (Constructor) ã ...obj-
The spread operator allows an expression to be expanded in places where multiple arguments (for function calls) or multiple elements (for array literals) are expected.
éå¢è鿏
åå°¾/åé¦éå¢èåå°¾/åé¦éæ¸éç®åã
ä¸å éç®å
ä¸å éç®æ¯æåªéè¦ä½¿ç¨ä¸åéç®å çéç®ã
delete-
deleteéç®åå¯åªé¤ç©ä»¶ä¸ç屬æ§ã void-
voidéç®å坿¾æ£ä¸åéç®å¼çåå³å¼ã typeof-
typeoféç®åå¯ä»¥å¤æ·ä¸åæå®ç©ä»¶çåæ ã +-
ä¸å æ£éç®åå¯ä»¥è½æå ¶éç®å æçºæ¸å¼ (Number) åæ ã
--
ä¸å è² éç®åå¯ä»¥è½æå ¶éç®å æçºæ¸å¼ (Number) åæ ä¸¦è½çºè² å¼ã
~-
å ä½ NOT éç®åã
!-
é輯 NOT éç®åã
ç®è¡éç®å
ç®è¡éç®åæè¦ç¨å°æ¸å¼ (ä¸è«æ¯åé¢å¼æè è®æ¸) åçºéç®å ï¼ä¸¦ä¸æåå³å®ä¸æ¸å¼çµæã
éä¿éç®å
æ¯è¼éç®åææ¯è¼å
¶éç®å
ä¸¦æ ¹ææ¯è¼ççµææ¯å¦æç«åå³ä¸å Boolean å¼ççµæã
in-
inéç®åæå¤æ·ä¸åç©ä»¶æ¯å¦ææå®ç屬æ§ã instanceof-
instanceoféç®åæå¤æ·ä¸åç©ä»¶æ¯å¦çºå¦ä¸åç©ä»¶ç實ä¾ã <-
å°æ¼éç®åã
>-
大æ¼éç®åã
<=-
å°æ¼çæ¼éç®åã
>=-
大æ¼çæ¼éç®åã
å註ï¼=> is not an operator, but the notation for Arrow functions.
ç¸çéç®å
å·è¡ç¸å°éç®åå¾ççµæçºæ¯è¼çµææ¯å¦æç«ç Boolean å¼ã
ä½å ç§»ä½éç®å
ç¨ä¾ä½ç§»éç®å ææä½å çéç®ã
äºå ä½å éç®å
ä½å éç®åå°å ¶éç®å ç¶åæ¯ 32 ä½å (32 åé¶èä¸) çæ¸å¼èç並å峿¨æº JavaScript æ¸å¼ã
äºå é輯éç®å
é輯éç®åä¸è¬ç¨å¨èç叿 (é輯) å¼ï¼å®ååå¨çå°æ¹æåå³ä¸å叿 (Boolean) å¼ã
æ¢ä»¶ (ä¸å ) éç®å
(condition ? ifTrue : ifFalse)-
æ¢ä»¶éç®åææ ¹ææ¢ä»¶çé輯å¼å¤æ·ä¸¦åå³å ¶ä¸ä¸åå¼ã
賦å¼éç®å
賦å¼éç®åææ ¹æå ¶å³å´éç®å çæ¸å¼èçå¾è³¦å¼çµ¦å ¶å·¦å´çéç®å ã
=-
賦å¼éç®åã
*=-
乿³è³¦å¼ã
/=-
餿³è³¦å¼ã
%=-
餿¸è³¦å¼ã
+=-
å æ³è³¦å¼ã
-=-
æ¸æ³è³¦å¼ã
<<=-
左移賦å¼ã
>>=-
å³ç§»è³¦å¼ã
>>>=-
ç¡èå³ç§»è³¦å¼ã
&=-
ä½å AND 賦å¼ã
^=-
ä½å XOR 賦å¼ã
|=-
ä½å OR 賦å¼ã
{a, b} = {a:1, b:2}[a, b] = [1, 2]-
è§£æ§è®ä½ å¯ä½¿ç¨å¦é£åæç©ä»¶æ¸å¯«æ ¼å¼ä¾è³¦å¼çµ¦é£åæç©ä»¶ç屬æ§ã
éèéç®å
,-
éèéç®åå 許å¨ä¸åæè¿°å¥ä¸å·è¡å¤åéç®å¼ä¸¦å峿å¾ä¸åéç®å¼ççµæã
鿍æºåè½
- Legacy generator function
-
The
functionkeyword can be used to define a legacy generator function inside an expression. To make the function a legacy generator, the function body should contains at least oneyieldexpression. - Expression closures
-
The expression closure syntax is a shorthand for writing simple function.
-
[for (x of y) x] -
Array comprehensions.
-
(for (x of y) y) -
Generator comprehensions.