JavaScript에서 옵션 함수 파라미터를 선언하려면 어떻게 해야 합니까?
다음과 같은 기본 파라미터를 선언할 수 있습니까?
function myFunc( a, b=0)
{
// b is my optional parameter
}
JavaScript에서?
ES6의 경우: 이것은 언어의 일부입니다.
function myFunc(a, b = 0) {
// function body
}
ES6는 이 값을 체크하는 것에 주의해 주세요.undefined
truthy-ness에는 반대하지 않습니다(따라서 null과 같은 falsey 값은 기본값이 되지 않습니다).
ES5의 경우:
function myFunc(a,b) {
b = b || 0;
// b will be set either to b or to 0.
}
이것은 명시적으로 전달한 모든 값이 진부한 경우에 유효합니다.MiniGod의 코멘트에 따라 진부하지 않은 값:null, undefined, 0, false, ''
자바스크립트 라이브러리는 함수가 실제로 시작되기 전에 옵션 입력에 대해 많은 검사를 하는 것이 일반적입니다.
갱신하다
ES6 에서는, 이것이 설명되고 있는 것과 같은 방법으로 실현됩니다.상세한 것에 대하여는, 메뉴얼을 참조해 주세요.
구답
JavaScript의 기본 파라미터는 주로 두 가지 방법으로 구현할 수 있습니다.
function myfunc(a, b)
{
// use this if you specifically want to know if b was passed
if (b === undefined) {
// b was not passed
}
// use this if you know that a truthy value comparison will be enough
if (b) {
// b was passed and has truthy value
} else {
// b was not passed or has falsy value
}
// use this to set b to a default value (using truthy comparison)
b = b || "default value";
}
표현b || "default value"
가치와 존재를 평가하다b
값을 반환합니다."default value"
한다면b
존재하지 않거나 거짓일 수도 있어요
대체 선언:
function myfunc(a)
{
var b;
// use this to determine whether b was passed or not
if (arguments.length == 1) {
// b was not passed
} else {
b = arguments[1]; // take second argument
}
}
특별한 "어레이"arguments
함수 내에서 사용할 수 있습니다.인덱스부터 시작하여 모든 인수를 포함합니다.0
로.N - 1
(어디서)N
전달된 인수 수입니다).
일반적으로 알 수 없는 수의 (같은 유형의) 옵션 매개 변수를 지원하기 위해 사용됩니다. 단, 예상되는 인수를 지정하는 것이 좋습니다.
기타 고려사항
비록 ~일지라도undefined
ES5 이후 쓰기 불가능, 일부 브라우저는 이를 적용하지 않는 것으로 알려져 있습니다.이 문제가 우려되는 경우 다음 두 가지 대안을 사용할 수 있습니다.
b === void 0;
typeof b === 'undefined'; // also works for undeclared variables
언급URL : https://stackoverflow.com/questions/12797118/how-can-i-declare-optional-function-parameters-in-javascript
'programing' 카테고리의 다른 글
람다 식을 사용하여 요소가 존재하는지 확인하는 방법은 무엇입니까? (0) | 2022.09.09 |
---|---|
mariadb 파티션이 더 나은 성능을 제공하지 못하는 이유는 무엇입니까? (0) | 2022.09.09 |
에러 코드: 1235.이 버전의 MariaDB는 아직 '창 함수로 카운트(DISTINCT) 집계'를 지원하지 않습니다. (0) | 2022.09.09 |
64비트보다 큰 값을 반환하는 bit_count 함수를 지원하는 mariadb 버전 (0) | 2022.09.09 |
Spring Boot 2 JPA 어플리케이션에서 MariaDB에서 InnoDB 또는 XtraDB를 스토리지 엔진으로 선택하는 방법 (0) | 2022.09.08 |