1/21 실강

  • var, let, const
    var a = 10;
    {
    var b = 20;
    let c = 30;
    }
    console.log(a); // 10
    console.log(b); // 20
    console.log(c); // 에러(c is not defined)

let은 스코프({})안에서만 사용할 수 있음(const도)

  • 객체타입
    let student = {
    	name:"홍길동",
        age:20,
        skills:["Java", "Python", "Javascript"],
        obj: {
        	num:20
            }
        }

student.name, student['name'] 이런 식으로 접근 가능
student.obj.num 으로 접근 가능

  • typeof: 타입 확인 가능

  • 스프레드 연산자
A = [1,2,3,4,5];
A=[...A, 6] // A=[1,2,3,4,5,6]
B = [2,3,4,5,6];
C = [...A, ...B]; // C=1,2,3,4,5,2,3,4,5,6]

...은 데이터를 펼쳐주는 거
...을 통해 인자를 추가하거나 배열을 합치는 것도 가능

let stduent = {
	name:'홍길동',
    	age:'20'
    }
let company = {
	company:'samsung'
let newObj = {
	...stduent,
    	...company
        }

이런식으로 객체타입도 합치는 것이 가능

  • 깊은 복사, 얕은 복사
let A = [1,2,3,4,5];
let B = A; // 얕은 복사
B[0] = 10;
console.log(B); // [10,2,3,4,5]
console.log(A); // [10,2,3,4,5]
let C =[...A]; //깊은 복사
또는 let C = A.slice(); // 깊은 복사

-B가 A 주소값을 복사해서 B를 변경하면 A도 변경됨(얕은 복사)
-C가 A와 값은 똑같지만 새로운 메모리 주소가 생기므로 C의 값을 변경해도 A의 값은 변경되지 않음(깊은 복사)


  • =>함수
    const func = (a,b) => a-b; // a-b를 리턴
    const func2 = (a,b) => {
    	console.log(a,b)
        	a-b
            }  // 이렇게도 가능

  • ddd
    let num = [1,2,3,4,5];
    let sum = 0;
    for(const n of num){ // 파이썬의 for n in num과 같은 의미
    	sum += n
        }

  • ``(백틱)
    let a =`1.일
    2.이
    3.삼
    `; // 이런 식으로 줄바꿈 할 때 ` 사용 가능

  • map
    let a = [1,2,3,4,5];
    a.map((v) => v*2); // [2,4,6,8,10]
    // * a.map((v) => { return v*2 }); // {}를 사용하면 return을 해줘야함
    // * a.map((v,i) => v*2); // i는 인덱스

map은 새로운 값을 return 하지만 forEach는 반복만 함

  • filter
    let A = [1,2,3,4,5];
    A.filter(v => v%2 == 0) // [2,4]

  • reduce
    let A = [1,2,3,4,5];
    A.reduce((a,b) => a+b); // 15
    // 뒤의 결과가 a로 들어감(1+2, (1+2)+3,(1+2+3)+4 ...)

  • 문자열


  • **dd**
    var scores = {
    	kor= 55,
        	eng=45,
            mat = 50}
    Object.entries(scores) // [['kor', 55],['eng,45],['mat',50]]
    //Object.entries(scores).filter(v => v[1]<40).length===0) // 위의 결과에서 1번 인덱스 애들 중 40점 보다 적은 애들의 수가 0이라면
    // Object.values(scores).reduce((a,b) => a+b) // [55,45,50]을 뽑고 reduce로 더함

  • toString
    let A = 100;
    A.toString(2) // 2진법으로 변환
    A.toString(16) // 16진법으로 변환

좋은 웹페이지 즐겨찾기