JS - Default parameter
10259 ワード
Default parameter
ES 6から、関数のデフォルトパラメータを指定できます.以前は,パラメータ伝達値が関数誤動作を引き起こすundefined
と同じであれば,if문
を用いて処理していた.しかし、ES 6では、より簡単な構文を用いて処理することができる.
基本構文
ES5function hello(name) {
if (!name) {
name = "World";
}
console.log("Hello, " + name + "!");
}
hello("Leo"); // Hello, Leo!
hello(undefined); // Hello, World!
hello(); // Hello, World!
ES6const hello = (name = "World") => {
console.log(`Hello, ${name}!`);
}
hello("Leo"); // Hello, Leo!
hello(undefined); // Hello, World!
hello(); // Hello, World!
詳細
expression, function
Defaultパラメータは式でも関数でも構いません./* 표현식 */
const f = (x = 5, y = x + 5) => {
console.log(x, y);
}
f();
/* 함수 */
const showError = () => {
console.error("wrong parameter");
return 0;
};
const getPlus = (a, b = showError()) => {
console.log(`${a} + ${b} = ${a + b}`);
};
getPlus(10, 20); // 10 + 20 = 30
getPlus(50); // Error worng parameter 50 + 0 = 100
letと同じ
Default parameterは関数でlet宣言と同じです.const f = function (x = 1, y = 2 + x) {
/*
let x = 1;
let y = 2 + x;
*/
let z = y + 3;
x = 4;
console.log(x, y, z); // 4 3 6
}
f();
整理する
function hello(name) {
if (!name) {
name = "World";
}
console.log("Hello, " + name + "!");
}
hello("Leo"); // Hello, Leo!
hello(undefined); // Hello, World!
hello(); // Hello, World!
const hello = (name = "World") => {
console.log(`Hello, ${name}!`);
}
hello("Leo"); // Hello, Leo!
hello(undefined); // Hello, World!
hello(); // Hello, World!
/* 표현식 */
const f = (x = 5, y = x + 5) => {
console.log(x, y);
}
f();
/* 함수 */
const showError = () => {
console.error("wrong parameter");
return 0;
};
const getPlus = (a, b = showError()) => {
console.log(`${a} + ${b} = ${a + b}`);
};
getPlus(10, 20); // 10 + 20 = 30
getPlus(50); // Error worng parameter 50 + 0 = 100
const f = function (x = 1, y = 2 + x) {
/*
let x = 1;
let y = 2 + x;
*/
let z = y + 3;
x = 4;
console.log(x, y, z); // 4 3 6
}
f();
undefined
および欠落した値に対してのみ機能します.표현식(expression)
および함수(function)
度を使用できます.let
と宣言されたものと同じです.リファレンス
Reference
この問題について(JS - Default parameter), 我々は、より多くの情報をここで見つけました https://velog.io/@leo-xee/JS-Default-parameterテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol