함수의 default 파라미터 넣기 가능
등호, 수학연산자, 다른파라미터와 연산도 가능하고 함수도 넣을수있음
function 더하기 (a, b = 10){
console.log(a + b)
}
더하기(1); // 11
function 더하기 (a, b = 2 * 5){
console.log(a + b)
}
더하기(1); // 11
function 더하기 (a, b = 2 * a){
console.log(a + b)
}
더하기(3); // 9
function 임시함수(){
return 10
}
function 더하기 (a, b = 임시함수() ){
console.log(a + b)
}
더하기(3); // 13
함수의 arguments
arguments는 입력된 파라미터를 [ ] 안에 감싸주어 파라미터들을 한꺼번에 다루고 싶을 때 자주 활용
function 함수(a,b,c){
console.log(arguments)
}
함수(2,3,4); // Arguments(3) [2, 3, 4, callee: ƒ, Symbol(Symbol.iterator): ƒ]
function 함수(a,b,c){
console.log(arguments[0]) // 2
console.log(arguments[1]) // 3
console.log(arguments[2]) // 4
}
함수(2,3,4);
function 함수(a,b,c){
for (var i = 0; i < arguments.length; i++){
console.log(arguments[i])
}
}
함수(2,3,4); // 2 3 4
Rest 파라미터(feat.나머지 파라미터)
파라미터에 spread operator를 붙여주면 이 자리에 오는 모든 파라미터를 대괄호로 감싸줌
※파라미터가 여러개면 rest는 항상마지막에 넣어야하고, 2개이상 사용불가, 말그대로 나머지 부분에만 사용가능
function 함수2(...파라미터들){
console.log(파라미터들)
}
함수2(1,2,3,4,5,6,7); // [1, 2, 3, 4, 5, 6, 7]
function 함수2(a, b, ...파라미터들){
console.log(파라미터들)
}
함수2(1,2,3,4,5,6,7); // [3, 4, 5, 6, 7]
function 함수(...rest){
for (var i = 0; i < rest.length; i++) {
console.log(rest[i]);
}
}
함수(1,2,3,4,5,6,7,8); // 파라미터가 몇개가 들어가던지 상관없이 콘솔을 계속출력해줌
case) Spread
var a = [1,2,3];
var b = '김밥';
var c = [...b, ...a];
console.log(c);
// ['김','밥',1,2,3]
var a = [1,2,3];
var b = ['you', 'are'];
var c = function(a,b){
console.log( [[...a], ...[...b]][1] )
}
c(a,b);
// [[...[1,2,3]], ...[...['you','are']][1]
// [[1,2,3], ...['you','are']][1]
// [[1,2,3],'you','are'][1]
// you
case) 파라미터
function 함수(a = 5, b = a * 2 ){
console.log(a + b);
return 10
}
함수(3);
// a = 3, b = 3 * 2
// 9
function 함수(a = 5, b = a * 2 ){
console.log(a + b);
}
함수(undefined, undefined);
// a = 5, b = 5 * 2
// 15
case) defalut 파라미터
function 어레이(){
(여기 어떤코드가 들어가면 될까요?)
}
var newArray = 어레이(1,2,3,4,5);
console.log(newArray);
//answer
function 어레이(...rest) {
return rest
}
}
case) 최댓값 구하기
Math.max(5,6,4,3)
var numbers = [2,3,4,5,6,1,3,2,5,5,4,6,7];
최대값구하기
Math.max(...numbers); //7
case)글자를 알파벳순으로 정렬해주는 함수
function 정렬(){
(여기 어떤 코드가 들어가야할까요?)
}
정렬('bear');
//answer
function 정렬(word) {
console.log([...word].sort())
}
case)데이터마이닝
글자세기('aacbbb') 라고 입력하면 콘솔창에
{ a : 2, b : 3, c : 1 } 입력되는 함수
//answer
글자세기('aacbbb');
function 글자세기(word) {
var result = {};
[...word].forEach(function(a) {
if(result[a] > 0){ result[a]++} else {result[a] = 1}
});
console.log(result)
}
//{a: 2, c: 1, b: 3}
'WEB > Node.js' 카테고리의 다른 글
[JavaScript] 객체지향문법 - constructor와 prototype 그리고 class에 대한 이해 (0) | 2021.12.14 |
---|---|
[JavaScript] for문대신 쓸수 있는 배열함수들 (0) | 2021.12.14 |
[JavaScript] Spread Operator 활용방법 (0) | 2021.12.13 |
[JavaScript] 자바스크립트 문자다루기 template literals,tagged literals (0) | 2021.12.13 |
[JavaScript]변수선언 (0) | 2021.12.11 |