Baseline Widely available
function
声æå建ä¸ä¸ªç»å®å°ç»å®åç§°çæ°å½æ°ã
ä½ ä¹å¯ä»¥ä½¿ç¨ function
è¡¨è¾¾å¼æ¥å®ä¹å½æ°ã
function calcRectArea(width, height) {
return width * height;
}
console.log(calcRectArea(5, 6));
// Expected output: 30
è¯æ³
function name(param0) {
statements
}
function name(param0, param1) {
statements
}
function name(param0, param1, /* â¦, */ paramN) {
statements
}
åæ°
name
彿°åç§°ã
param
å¯é
彿°çå½¢ååç§°ãä¸å弿ä¸çæå¤§åæ°æ°éææä¸åãæå ³åæ°çè¯æ³ï¼è¯·åé 彿°åèã
statements
å¯é
ææå½æ°ä½çè¯å¥ã
function
声æå建ä¸ä¸ª Function
å¯¹è±¡ãæ¯æ¬¡è°ç¨å½æ°æ¶ï¼é½ä¼è¿åæåæ§è¡ return
è¯å¥ææå®çå¼ï¼å¦ææ§è¡ç´å°å½æ°ä½çç»å°¾ï¼åè¿å undefined
ã请åè§å½æ°ä»¥è·åæå
³å½æ°ç详ç»ä¿¡æ¯ã
function
声æè¡ä¸ºä¸å°±å var
å let
çæ··åï¼
let
类似ï¼å¨ä¸¥æ ¼æ¨¡å¼ä¸ï¼å½æ°å£°æçä½ç¨åä¸ºææ¥è¿çåãlet
ç±»ä¼¼ï¼æ¨¡åé¡¶å±æä¸¥æ ¼æ¨¡å¼ä¸çåå
ç彿°å£°æä¸è½è¢«ä»»ä½å
¶ä»å£°æéæ°å£°æãvar
类似ï¼èæ¬é¡¶å±ï¼æ 论æ¯å¦å¤äºä¸¥æ ¼æ¨¡å¼ï¼ç彿°å£°æä¼æä¸º globalThis
ç屿§ãèæ¬é¡¶å±æå½æ°ä½ï¼æ 论æ¯å¦å¤äºä¸¥æ ¼æ¨¡å¼ï¼ä¸ç彿°å£°æå¯ä»¥è¢«å¦ä¸ä¸ª function
æ var
鿰声æãè¦åï¼ å¨éä¸¥æ ¼æ¨¡å¼ä¸ï¼å级ä½ç¨åç彿°å£°æè¡ä¸ºä¼åå¾å¾å¥æªãåªæå¨ä¸¥æ ¼æ¨¡å¼ä¸æåºè¯¥å¨å级ä½ç¨åä¸å£°æå½æ°ã
彿°å¯ä»¥è¢«æ¡ä»¶æ§å°å£°æââä¹å°±æ¯è¯´ï¼å½æ°å£°æå¯ä»¥åµå¥å¨ä¸ä¸ª if
è¯å¥ä¸ãç¶èï¼å¨éä¸¥æ ¼æ¨¡å¼ä¸ï¼ä¸åçå®ç°ç»æå¯è½ä¸ä¸è´ã
console.log(
`âfooâåç§°${
"foo" in globalThis ? "æ¯" : "䏿¯"
}å
¨å±çãtypeof foo çäº ${typeof foo}`,
);
if (false) {
function foo() {
return 1;
}
}
// å¨ Chrome ä¸ï¼
// âfooâåç§°æ¯å
¨å±çãtypeof foo çäº undefined
//
// å¨ Firefox ä¸ï¼
// âfooâåç§°æ¯å
¨å±çãtypeof foo çäº undefined
//
// å¨ Safari ä¸ï¼
// âfooâåç§°æ¯å
¨å±çãtypeof foo çäº function
æ 论 if
è¯å¥æ¯å¦å®é
æ§è¡ï¼ä½ç¨ååæåææé½ä¸ä¼æ¹åã
console.log(
`âfooâåç§°${
"foo" in globalThis ? "æ¯" : "䏿¯"
}å
¨å±çãtypeof foo çäº ${typeof foo}`,
);
if (true) {
function foo() {
return 1;
}
}
// å¨ Chrome ä¸ï¼
// âfooâåç§°æ¯å
¨å±çãtypeof foo çäº undefined
//
// å¨ Firefox ä¸ï¼
// âfooâåç§°æ¯å
¨å±çãtypeof foo çäº undefined
//
// å¨ Safari ä¸ï¼
// âfooâåç§°æ¯å
¨å±çãtypeof foo çäº function
å¨ä¸¥æ ¼æ¨¡å¼ä¸ï¼å级ä½ç¨åç彿°å£°æçä½ç¨å为该åï¼å¹¶ä¸ä¼æåå°è¯¥åçé¡¶é¨ã
"use strict";
{
foo(); // æå° "foo"
function foo() {
console.log("foo");
}
}
console.log(
`âfooâåç§°${
"foo" in globalThis ? "æ¯" : "䏿¯"
}å
¨å±çãtypeof foo çäº ${typeof foo}`,
);
// âfooâåç§°ä¸æ¯å
¨å±çãtypeof foo çäº undefined
彿°å£°ææå
JavaScript ä¸ç彿°å£°æä¼è¢«æåå°å ¶æå¨ä½ç¨åçæåé¢ãä½ å¯ä»¥å¨å£°æä¹å使ç¨å½æ°ï¼
hoisted(); // æå° "foo"
function hoisted() {
console.log("foo");
}
请注æï¼å½æ°è¡¨è¾¾å¼ä¸ä¼è¢«æåï¼
notHoisted(); // TypeError: notHoisted is not a function
var notHoisted = function () {
console.log("bar");
};
鿰声æ
function
å£°ææ¯å¦å¯ä»¥éæ°å£°æï¼åå³äºå®æå¨çä½ç¨åã
å¨èæ¬é¡¶å±ï¼function
声æçè¡ä¸ºç±»ä¼¼äº var
ï¼å¯ä»¥è¢«å¦ä¸ä¸ª function
æ var
鿰声æï¼ä½ä¸è½è¢« let
ãconst
æ class
鿰声æã
function a(b) {}
function a(b, c) {}
console.log(a.length); // 2
let a = 2; // SyntaxError: Identifier 'a' has already been declared
å½ function
声æè¢« var
éæ°å£°ææ¶ï¼æ 论å®ä»¬çç¸å¯¹ä½ç½®å¦ä½ï¼var
声æçåå§å卿»æ¯ä¼è¦ç彿°çå¼ãè¿æ¯å ä¸ºå½æ°å£°æä¼å¨ä»»ä½åå§åå¨è¢«æ§è¡ä¹å被æåï¼æä»¥åå§åå¨éåçæ§è¡ä¼è¦ç彿°çå¼ã
var a = 1;
function a() {}
console.log(a); // 1
å¨å½æ°ä½çé¡¶å±ï¼function
çè¡ä¸ºä¹ç±»ä¼¼äº var
ï¼å¯ä»¥è¢«éæ°å£°ææä¸åæ°å
·æç¸åçåç§°ã
function foo(a) {
function a() {}
console.log(typeof a);
}
foo(2); // æå° "function"
卿¨¡åé¡¶å±æä¸¥æ ¼æ¨¡å¼ä¸çå级ä½ç¨åä¸ï¼function
声æçè¡ä¸ºç±»ä¼¼äº let
ï¼ä¸è½è¢«ä»»ä½å
¶ä»å£°æéæ°å£°æã
// åå®å½åæºç 卿¨¡åä¸
function foo() {}
function foo() {} // SyntaxError: Identifier 'foo' has already been declared
"use strict";
{
function foo() {}
function foo() {} // SyntaxError: Identifier 'foo' has already been declared
}
å¨ catch
åå
é¨ï¼å³ä½¿æ¯å¨éä¸¥æ ¼æ¨¡å¼ä¸ function
声æä¸è½ä¸ catch
ç»å®çæ è¯ç¬¦å
·æç¸åçåç§°ã
try {
} catch (e) {
function e() {} // SyntaxError: Identifier 'e' has already been declared
}
ç¤ºä¾ ä½¿ç¨å½æ°
以ä¸ä»£ç 声æäºä¸ä¸ªå½æ°ï¼å½ç»å®ä¸ç§äº§åçéå®å使°éæ¶ï¼è¯¥å½æ°è¿åé宿»é¢ã
function calcSales(unitsA, unitsB, unitsC) {
return unitsA * 79 + unitsB * 129 + unitsC * 699;
}
è§è æµè§å¨å
¼å®¹æ§ åè§
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