Things take time

[NodeJS] 2일차 -변수, 배열, 콜백 함수 본문

카테고리 없음

[NodeJS] 2일차 -변수, 배열, 콜백 함수

겸손할 겸 2017. 12. 8. 20:19

[자바스크립트]


1. 변수와 객체

=> var a = 10;

=> var b = {1, 2, 3} : 객체는 컬렉션, 집합을 이루는 애로 이루어진 Object, 변수에 할당가능


2. 기본 변수, 객체, 함수 사용

var age = 20; console.log("나이 : %d", age); var name = "소녀시대"; console.log("이름 : %s", name); //객체 var person = {}; person['age'] = 30; person.name = "겸"; console.log(person); console.log(person.age); console.log(person['name']);

// 함수 사용 방법 var add = function (a,b){ return a+b; }; var minus = { calculate : function (a,b){ return a-b; } }; var multiply = {} multiply.calculate = function (a,b){ return a*b; } function devide (a,b){ return a/b } var op1 = 3, op2 = 5, result = 0; result = add(op1, op2) console.log("%d + %d = %d", op1, op2, result); result = minus.calculate(op1, op2); console.log("%d - %d = %d", op1, op2, result); result = multiply.calculate(op1, op2); console.log("%d * %d = %d", op1, op2, result); result = devide(op1, op2); console.log("%d / %d = %d", op1, op2, result);



3. 배열 사용하기 : 추가, 삭제, 복사

// 배열 만들기
var person1 = {name:"이름1", age:"15"};
var person2 = {name:"이름2", age:"18"};
var person3 = {name:"이름3", age:"30"};
var person4 = function(a,b){
    return a+b;
};

var person_array = [];
// 배열의 뒤에 넣기
person_array.push(person1);
person_array.push(person2);
// 배열의 앞에 넣기
person_array.unshift(person3);

console.log(person_array.length);

person_array.forEach(function(item, index){
    console.log(index + " : " + item.name + "/" + item.age);
});

console.dir(person_array);
// 배열의 맨 뒤 빼기
person_array.pop();
console.dir(person_array);
// 배열의 맨 앞 빼기
person_array.shift();
console.dir(person_array);

person_array.push(person1);
person_array.unshift(person3);
console.dir(person_array);

// delete는 데이터는 지우지만 저장 공간은 그대로
console.log(person_array.length);
delete person_array[1];
console.log(person_array.length);
person_array[1] = person2

// 자바스크립트의 배열은 같은 자료형의 집합이 아님
person_array.push(person4);
console.dir(person_array);

// 1번째 인덱스(2번)부터 2개를 삭제 -> 1,2번 인덱스 삭제 + 공간삭제
person_array.splice(1,2);
console.dir(person_array);

person_array.splice(1,0,"adding");
console.dir(person_array);

// 1번째 인덱스에서(start) 2개를 복사
var person_array_copy = person_array.slice(1,2);
console.dir(person_array_copy);


4. 콜백 함수

// 콜백함수, 파라미터에 함수를 받는 함수로 callback대신 자유로운 네이밍 가능, return 키워드 사용X
function add(a, b, callback){
    var result = a+b;
    callback(result);
}

add(10, 10, function(res){
   console.log("add 함수 결과 : " + res);
});

function add2(a, b, callback2){
    var result2 = function(c, d){
        return c+d;
    }
    callback2(result2(a,b));
}

add2(10, 20, function(res){
    console.log("add2 함수 결과 : " +res);
});


function add3(a, b, callback3){
    var result3 = a+b;
    callback3(result3);
    var count = 0;
    var history = function(){
        count ++;
        return count + " : " + a + " + " + b + " = " + result3;
    };
    return history;
}

var add_history = add3(10, 20, function(res){
   console.log("callback으로 인한 return : " + res); 
});

// add_history의 return 타입은 function()이기에 함수타입인 ()를 해줘야함
// add_history는 return값만을 가진 변수이므로 add3을 호출하는게 아님
// 그 안에있는 함수의 변수값이 계속 접근가능한게 특징(함수가 함수를 호출했고, add3의 count를 history에 넘겨줘서 계속 접근이 가능함)
console.log("add_history가 가진 return : " + add_history());
console.log("add_history가 가진 return : " + add_history());
console.log("add_history가 가진 return : " + add_history());