>  기사  >  웹 프론트엔드  >  ES6의 기본 매개변수 소개(코드 예시)

ES6의 기본 매개변수 소개(코드 예시)

不言
不言앞으로
2018-11-14 15:34:261718검색

이 글은 ES6의 기본 매개변수(코드 예제)에 대한 소개를 제공합니다. 여기에는 특정 참조 값이 있습니다. 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.

Grammar

function [name]([param1[ = defaultValue1 ][, ..., paramN[ = defaultValueN ]]]) { 
    statements 
}

Use

function sum(a=0, b=0){
    return a+b
}
sum() // 0
sum(1) // 1
sum(1, 2) // 3

Use babelTranslate

function sum() {
    var a = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
    var b = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
    return a + b;
}

값 감지

바벨 번역 결과를 보면 기본 매개변수는 두 가지 상황만 확인하는 것을 볼 수 있습니다

  • 매개변수가 전달되지 않습니다

  • Pass Enter undefed

function sum(a=0){
    return typeof a
}
sum() // 'number'
sum(undefined)// 'number'
sum(1) // 'number'
sum('1') // 'string'
sum(null) // 'object'
sum(false)// 'boolean'

이전 및 이후 매개변수 사용

이전 매개변수를 후속 매개변수의 기본값으로 사용할 수 있으며, 이전 매개변수에 단순 덧셈, 뺄셈 등의 특수 연산을 수행할 수도 있습니다. 곱셈과 나눗셈

function sum(a=1, b=a, c=a+b){
    return [a, b, c]
}
sum() // [1, 2, 3]
sum(2)  // [2, 2, 4]
sum(2,2) // [2, 2, 4]
sum(2,2,2) // [2, 2, 2]

기본 매개변수 호출 함수

기본 매개변수를 지정하면 함수도 호출할 수 있습니다. 함수를 호출할 수 있다는 것은 이미 모든 것이 가능하다는 것을 보여줍니다~

function sum(a=1, b=(()=>4)()){
    return [a, b]
}
sum() // [1, 4]
sum(2) // [2, 4]
sum(2,2) // [2, 2]

참고: 함수 내부에 선언된 함수는 기본값으로 호출할 수 없습니다

function sum(a=1, b=num2()){
    function num2(){
        return 4
    }
    return [a, b]
}
sum() // Uncaught ReferenceError: num2 is not defined

순서대로 재정의

매개변수는 여전히 호출에 의해 호출됩니다. 전송 순서는 하나씩 적용되며, 형식 매개변수 할당은 기본값이 있다고 해서 건너뛰지 않습니다

function sum(a=1, b ){
    return [a, b]        
}
sum() // [1, undefined]
sum(2)// [2, undefined]
sum(1,2) //[1, 2]

할당 기본 매개변수 파괴

이 시리즈에는 아직 구조가 나타나지 않았지만 기본 매개변수도 구조에 사용할 수 있습니다. 통과

function sum([x, y] = [1, 2], {z: z} = {z: 3}) { 
  return [x, y, z]; 
}
sum() // [1, 2, 3]
sum([2,4],{z: 6}) // [2, 4, 6]

위 내용은 ES6의 기본 매개변수 소개(코드 예시)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 segmentfault.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제