본문 바로가기

sparta/본캠프

[본캠프]8일차(2주차 강의 완)

[할일]
1, 1주차 강의 총복습
2. CSS, HTML기본구조 특강
3. 2주차 강의 완강

2-3 일급 객체로서의 함수1

//일급객체로서의 함수
//다른 객체들과 일반적으로 같다.
//매우 유연하게 사용 가능.

//(1)변수에 함술를 할당할 수 있다.
const sayHello=function(){
    console.log('Hello!')
}
//함수가 마치 값으로 취급되며
// 나중에 사용될 수 이도록 조치가 되었다.



//(2) 함수를 인자로 다른 함수에 전달할 수 이다.
//(2)-1 콜백함수: 매개변수로써 쓰이는 함수
//(2)-2 고차함수: 함수를 인자로 받거나 return한느 함수
function callFunction(func){
    func();
    //매개변수로 받은 변수가 사실 함수다.
}
const sayHello1=function(){
    console.log('Hello_2') //Hello_2
}
callFunction(sayHello1)


//(3)함수를 반환할 수 있다.
function createAdder(num){
    return function(){
        return x1+num;
    }
}
const addFive=createAdder(5);
console.log(addFive(10)) //15

 

 

 


2-4 일급객체로서의 함수2 

이건 그림으로 보는 편이 더 쉽게 이해할 거라 생각이 들어서 그림으로 가져왔다.

 

 

[1]

출력: 40

 

 

[2]

출력: Final=>110


2-5 Map소개 및 예시코드 연습

const myMap=new Map();
myMap.set('one', 1);
myMap.set('two', 2);
myMap.set('three', 3);
//Map 
//JS->객체, 배열: 많고 다양하고 복잡한 프로그램
//그럼에도 현실반영하기엔 어려움
//해결책) Map, Set 자료구조 등장

// Map, Set 목적: 데이터의 구성, 검색, 사용을 효율적으로 처리> 기존의 객체또는 배열보다


//(1) Map
//-key/value
//-key에 어떤 데이터타입도 다 들어올 수 있다.
//키가 정렬된 순서로 저장되기 때문이다.
//-key기능: 검색, 삭제, 제거, 여부 확인

const myMap=new Map();
// myMap.set('key', 'value');


// myMap.get('key')
//반복!-> method: keys(), values(), entries()

 

 

[1] key & value

console.log(myMap.keys());
//[Map Iterator] : 반복자
for(const key of myMap.keys()){
    console.log(key);
}
// [Map Iterator] { 'one', 'two', 'three' }
// one
// two
// three


console.log(myMap.values());
for(const value of myMap.values()){
    console.log(value);
}
//[Map Iterator] { 1, 2, 3 }
// 1
// 2
// 3

 

[2]entriies

for(const entry of myMap.entries()){
    console.log(entry);
}
// [Map Entries] { [ 'one', 1 ], [ 'two', 2 ], [ 'three', 3 ] }   
// [ 'one', 1 ]
// [ 'two', 2 ]
// [ 'three', 3 ]

 

 

[3] has & size

 

console.log(myMap.size);//map의 사이즈(길아)
console.log(myMap.has("two")) //key기반 검색
console.log(myMap.has("two1"))
// 3
// true
// false

 


 

2-6 Set소개 및 예제코드 연습

//Set: 고유한 값을 저장하는 자료구조
//값만 저장, key를 저장하지 않음, 중복 x
//값 추가, 검색, 모든 값 제거, 존재여부 확인

// 집합 !!!
const mySet= new Set();
mySet.add('value1');
mySet.add('value4');
mySet.add('value5');
mySet.add('value7');
mySet.add('value8');
//중복안됨 절대 안됨!!
console.log(mySet.size); //2

console.log(mySet.has("value1"))//있다
console.log(mySet.has("value2"))//있다
console.log(mySet.has("value3"))//없다!
// true
// true
// false

for(const value of mySet.values()){
    console.log(value)//차례대로 출력됨.
}

//교집합 흉내내기 
// let intersecion=new Set([...set1].filter(x=>set2.has(x)));

//차집합 흉내내기
// let difference=new Set([...set1].filter(x=>!setInterval.has(x)));