ABOUT ME

-

Today
-
Total
-
  • [코드스테이츠 TIL] 자바스크립트 배열, 반복문, 객체와 method
    Study/JavaScript 2019. 10. 10. 16:00
    반응형

    [배열 array]

    배열 : 순서가 있는 값

    요소 : 배열의 값 element

    순서 : 인덱스 index / 0부터 번호를 매긴다

     

    let myNumber = [12, 34, 45, 56] 
    
    myNumber[0] = 12

     

    배열로 할 수 있는 것들 : property and method

    1. 온점(dot . )을 이용해서 변수가 가지고 있는 property에 접근할 수 있다
      myNumber.length

    2. 온점(dot . )을 이용해서관련된 method를 실행할 수 있다.
      method는 함수 실행처럼 괄호를 열고 닫는 형태로 실행한다.
      myNumber.push(98)

     

    [반복문 loops and iteration]

    반목문 : 반복할 내용과 조건을 코드로 작성

    for 구문과 while 구문 차이는 거의 없다

    for (let step = 0; step < 5; step++) {
      // Runs 5 times, with values of step 0 through 4.
      console.log('Walking east one step');
    }
    let i = 0;
    do {
      i += 1;
      console.log(i);
    } while (i < 5);

     

    [객체 object]

    객체는 키와 값 쌍으로 이뤄져있다.
    key - value pair

    let user = {
    name : 'subin',
    age : 27,
    nation : 'Korea' }
    • Dot notation
      ex) user.name = 'subin'
    • bracket notation
      ex) user['name'] = 'subin'

    변수['key'] 으로 해야 value를 가져올 수 있다 (key를 스트링 취급해야하므로 따옴표 필요)

    변수[key] 로 작성하면 key를 변수로 취급한다.

    key라는 변수가 아직 정의되지 않았기 때문에 uncaught.. 하면서 에러가 뜨게 된다.

    그래서 항상 문자열 형식으로 key를 작성해야한다 (uncaught reference : 변수가 정의되지 않아서 뜨는 에러)

     

    ★ bracket notation을 써야하는 경우

    함수에서 key가 변수로 설정될 때는 항상 bracket notation을 사용해야한다.

    function pro(obj, name){ return obj[name] }

    function pro(obj, name){
    return obj[name] }

    key 추가 : 변수['key'] = value

    key&value 쌍 삭제 : delete 변수.key 또는 delete 변수['key']

    key 유무 여부 확인 : 'key' in 변수

    let obj = {
      a:1,
      b:2,
      c:3
    }
    
    obj['d'] = 4
    // d:4 쌍 추가
    
    delete obj.a 
    // a:1 삭제
    
    for(let key in obj){
    //code
    }
    //key 유무 여부 확인

     

     

    [객체 object method]

    Object.assign(target, ...sources)  : 하나 이상의 출처 객체로부터 대상 객체로 속성을 복사할 때 사용

    - target : 복사 당하는 대상 객체

    - sources : 복사 출처의 객체

    - return value : target 객체

    - 동일한 키가 존재할 경우 대상 객체의 속성은 출처 객체의 속성으로 덮어쓰여진다

    - 속성은 파라미터 순서에서 더 뒤에 위치한 동일한 속성을 가진 다른 객체에 의해 덮어쓰여진다

    const o1 = { a: 1, b: 1, c: 1 };
    const o2 = { b: 2, c: 2 };
    const o3 = { c: 3 };
    const o4 = { d: 4 };
    
    const obj = Object.assign({}, o1, o2, o3, o4);
    console.log(obj); // { a: 1, b: 2, c: 3, d: 4 }

     

    Object.entries(obj) :  for...in와 같은 순서로 주어진 객체 자체의 [key, value] 쌍의 배열을 반환

    - obj : 열거 가능한 자체 property [key, value] 쌍이 반환되는 객체

    - return value : 지정된 객체 자체의 열거 가능 속성 [key, value] 쌍의 배열

    const obj = { 0: 'a', 1: 'b', 2: 'c' };
    console.log(Object.entries(obj)); // [ ['0', 'a'], ['1', 'b'], ['2', 'c'] ]

     

    Object.keys(obj) : 개체 고유 속성의 이름을 배열로 반환

    - obj : 배열로 열거 가능한 속성을 가진 객체

    - return value : 주어진 객체의 모든 열거 가능한 속성의 이름을 나타내는 문자열 배열

    const object1 = {
      a: 'somestring',
      b: 42,
      c: false
    };
    
    console.log(Object.keys(object1));
    // expected output: Array ["a", "b", "c"]

     

    Object.values(obj) : 전달된 파라미터 객체가 가지는 속성의 값들로 이루어진 배열을 리턴

    - obj : 배열로 열거 가능한 속성을 가진 객체

    return value : 전달된 객체의 속성 값들을 포함하는 문자열 배열

    const object1 = {
      a: 'somestring',
      b: 42,
      c: false
    };
    
    console.log(Object.values(object1));
    // expected output: Array ["somestring", 42, false]
    

     

    obj.hasOwnProperty(prop) : 객체가 특정 프로퍼티를 가지고 있는지를  나타내는 불리언 값을 반환

    - prop : 테스트하려는 프로퍼티의 명칭

    const object1 = new Object();
    object1.property1 = 42;
    
    console.log(object1.hasOwnProperty('property1'));
    // expected output: true
    
    console.log(object1.hasOwnProperty('toString'));
    // expected output: false
    반응형

    댓글