表达å¼è¯å¥æ¯æå¨éè¦è¯å¥çå°æ¹ä½¿ç¨ç表达å¼ã该表达å¼è¢«æ§è¡åï¼å®çç»æå°è¢«ä¸¢å¼ââå æ¤ï¼å®ä» 对æçå¯ä½ç¨çè¡¨è¾¾å¼ææä¹ï¼ä¾å¦æ§è¡å½æ°æè æ´æ°åéã
è¯æ³expression
è¦è®¡ç®çä»»æè¡¨è¾¾å¼ãæäºè¡¨è¾¾å¼å¯è½ä¸å ¶ä»è¯å¥äº§çæ§ä¹ï¼å æ¤è¢«ç¦ç¨ã
é¤äºä¸ç¨çè¯å¥è¯æ³å¤ï¼ä½ ä¹å¯ä»¥å°å ä¹ä»»ä½è¡¨è¾¾å¼ç¨ä½åç¬çè¯å¥ã表达å¼è¯å¥è¯æ³éè¦å¨è¡¨è¾¾å¼çç»å°¾æ·»å ä¸ä¸ªåå·ï¼ä½æ¯å¦æç¼ºå°åå·å¯¼è´è¯æ³æ æï¼èªå¨åå·è¡¥å ¨çè¿ç¨å¯è½ä¼ä¸ºä½ æå ¥ä¸ä¸ªåå·ã
å ä¸ºè¡¨è¾¾å¼æ§è¡ä¹åå°±ä¼è¢«ä¸¢å¼ï¼è¡¨è¾¾å¼çç»æä¸åå¯ç¨ãå æ¤ï¼è¡¨è¾¾å¼å¿ é¡»æä¸äºå¯ä½ç¨æè½æç¨ã表达å¼è¯å¥é常æ¯ï¼
console.log("Hello");
ã[1, 2, 3].forEach((i) => console.log(i));
ï¼delete
import()
yield
å yield*
å¦æè¡¨è¾¾å¼è°ç¨ getter æè 触å强å¶ç±»å转æ¢ï¼å®ä»¬ä¹å¯è½æå¯ä½ç¨ã
被ç¦ç¨ç表达å¼ä¸ºäºå°è¡¨è¾¾å¼ç¨ä½è¯å¥ï¼å®ç¦æ¢ä¸å ¶ä»çè¯å¥è¯æ³ææ§ä¹ãå æ¤ï¼è¡¨è¾¾å¼ç¦æ¢ä»¥ä»¥ä¸ä»»ä½æ è®°å¼å¤´ï¼
function
ï¼è¿å°æ¯ function
声ææè
function*
声æï¼è䏿¯ function
è¡¨è¾¾å¼æè
function*
表达å¼async function
ï¼è¿å°æ¯ async function
声ææè
async function*
声æï¼è䏿¯ async function
è¡¨è¾¾å¼æè
async function*
表达å¼class
ï¼è¿å°æ¯ class
声æï¼è䏿¯ class
表达å¼let[
ï¼è¿å°æ¯å¸¦ææ°ç»è§£æç let
声æï¼è䏿¯ç§°ä¸º let
åéç屿§è®¿é®å¨ï¼let
ä»
å¯ä»¥æ¯å¨éä¸¥æ ¼æ¨¡å¼ä¸çæ è¯ç¬¦ï¼{
ï¼è¿å°æ¯ä¸ä¸ªåè¯å¥ï¼è䏿¯å¯¹è±¡åé¢éå æ¤ï¼ä»¥ä¸ææå å®¹åæ æï¼
function foo() {
console.log("foo");
}(); // SyntaxError: Unexpected token '('
// åºäºæç§åå ï¼ä½ æä¸ä¸ªå«å `let` çåé
var let = [1, 2, 3];
let[0] = 4; // SyntaxError: Invalid destructuring assignment target
{
foo: 1,
bar: 2, // SyntaxError: Unexpected token ':'
};
æ´å±é©çæ¯ï¼ææ¶å代ç ç¢°å·§æ¯ææçè¯æ³ï¼ä½æ¯è¿å¹¶ä¸æ¯ä½ æ³è¦çã
// åºäºæç§åå ï¼ä½ æä¸ä¸ªå«å `let` çåé
var let = [1, 2, 3];
function setIndex(index, value) {
if (index >= 0) {
// æç®åé
ç»æ°ç» `let`ï¼ä½æ¯å´å建ä¸ä¸ªé¢å¤çåéï¼
let[index] = value;
}
}
setIndex(0, [1, 2]);
console.log(let); // [1, 2, 3]
// è¿å¹¶ä¸æ¯ä¸ä¸ªå¯¹è±¡åé¢éï¼èæ¯ä¸ä¸ªåè¯å¥ã
// å
¶ä¸ `foo` æ¯æ ç¾ï¼`1` æ¯è¡¨è¾¾å¼è¯å¥ã
// è¿é叏卿§å¶å°ä¸åç
{ foo: 1 };
为äºé¿å è¿äºé®é¢ï¼ä½ å¯ä»¥ä½¿ç¨åæ¬å·ï¼ä½¿è¯å¥æç¡®å°ä½ä¸ºä¸ä¸ªè¡¨è¾¾å¼ã
(function foo() {
console.log("foo");
})();
ç¤ºä¾ é¿å
æ§å¶æµè¯å¥
ä½ å¯ä»¥ä½¿ç¨è¡¨è¾¾å¼è¯å¥æ¥é¿å
å ä¹æææ§å¶æµè¯å¥ç使ç¨ãä¾å¦ï¼å¯ä»¥ä½¿ç¨ä¸å
è¿ç®ç¬¦åé»è¾è¿ç®ç¬¦æ¿æ¢ if...else
ãå for
æè
for...of
å¯ä»¥ä½¿ç¨æ°ç»æ¹æ³æ¥æ¿æ¢ã
// ä½¿ç¨æ§å¶æµè¯å¥
function range(start, end) {
if (start > end) {
[start, end] = [end, start];
}
const result = [];
for (let i = start; i < end; i++) {
result.push(i);
}
return result;
}
// 使ç¨è¡¨è¾¾å¼è¯å¥
function range2(start, end) {
start > end && ([start, end] = [end, start]);
return Array.from({ length: end - start }, (_, i) => start + i);
}
è¦åï¼ è¿ä» æ¼ç¤ºäºè¯¥è¯è¨çåè½ãè¿åº¦ç使ç¨è¡¨è¾¾å¼è¯å¥æ¥æ¿ä»£æ§å¶æµè¯å¥ä¼å¤§å¤§éä½ä»£ç çå¯è¯»æ§ã
è§è åè§RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4