함수를 작성하는 사람은 해당 함수의 필요한 인자 개수를 알 수 있다. 또한 해당 함수를 사용하려는 사람도 해당 함수의 정의 코드를 확인하면 인자 개수를 확인 할 수 있을 것이다. 하지만 내장 함수의 경우는 어떠한가? 뭐 물론 아래 처럼 어떤 인자를 받을 수 있는지 확인이 가능할 것이다. 과연 우리가 max함수를 위와 같게 만들 수 있을까? 아니 그게 무슨 소린가? 이 블로그의 주인장은 프로그래밍을 이제 시작한 것인가? 라고 따져 들 수도 있을 것이다. 진짜 무슨 소린지 한번 표준 대로 만들어보자. 표준 <https://tc39.es/ecma262/multipage/numbers-and-dates.html#sec-math.max> 자 그러면 표준을 살펴 보자. 표준이 위와 같다. 잘 안보일 것 같으니 내용을 다시 작성해 본다면 Math.max( ...args ) 이 내용만 보면 ...values가 맞는 말이다. 하지만 제일 아래 줄을 보도록 하자. 이 함수의 "length"속성의 값은 2입니다. 자 간단하게 Math.max( ...args )를 만들어 보고 length가 2인지 확인 해보도록 하자. function max ( ...args ) { // 1. Let coerced be a new empty List. const list = [] /* 2. For each element arg of args, do a. Let n be ? ToNumber(arg). b. Append n to coerced. */ for ( const arg of args ) { const n = +arg list. push (n) } // 3. Let highest be -∞ 𝔽 . let highest = - Infinity /* 4. For each element number of coerced, do a. If nu...