Array & Function

JavaScript Arrays

Array

JavaScript에서 배열은 값만 존재한다

  • 배열 리터럴

    var a = [1,2,3]

  • Array 생성자 함수

    var b = new Array(1,2,3)

Array 순회

  • for

    var a = [1,2,3]
    
    for (var i=0 ; i <a.length; i++){
        console.log(i, a[i])
    }

  • for .. of

    : 안에 있는 원소 값들을 하나 하나씩 출력

    for (var elem of a){
        console.log(elem)
    }

  • forEach

    : 인자로 함수 자체를 받음

    a.forEach( function(elem, idx) {
        console.log(idx, elem)
    })

  • for .. in

    • 배열 요소만 접근하는 것이 아니라 속성까지 출력될 수 있다

      • JavaScript에서 배열도 object라서 속성 설정이 가능하지만, 리스트의 속성이 아니라, Object의 속성이 된다

    var a = [1,2,3]
    
    a.name = 'myarr'
    
    for (var i in a){
        console.log(i, a[i])
    }
    
    //0 1
    //1 2
    //2 3
    //name myarr   => 속성까지 순회
    • for ... in 형태는 사용 시 주의해야함!

      • for ...in 은 Object 자체의 모든 속성을 순회한다

Array methods

  • sort

    • 비교 함수가 (인자) 없으면 문자열을 기준으로 정렬한다

      • 이게 싫다면 비교 함수를 인자로 넣기

    • 비교함수가 있다면, 해당 함수의 return 값이 0보다 작음으로 정렬한다

  • 문자열 관련

    • join

      • 배열.join('haha')

  • toString

  • 배열 합치기

    • concat

      : 두 개의 배열을 합쳐줌

  • 원소 삽입/삭제

    • push

    • pop

    • unshift

      • 왼쪽 끝에 넣기

    • shift

      • 왼쪽 끝에 있는 것 빼기

  • index 탐색

    • indexOf

  • 배열 조작

    • splice(start[, deleteCount[, item1[, item2[, ...]]]])

      • 원본 배열 자체를 바꿔버림

      • 원소의 수정/삭제도 가능

        var a = [1,2,3]
        a.splice(1,2, "처음", "두번") // 1번째 위치부터 두 개를 지우겠다 + "처음", "두번" 을 붙이겠다
        // [1, "처음", "두번"]
        
        var a = [1,2,3]
        a.splice(1,2, "처음") //1번째 위치부터 두 개를 지우겠다 + "처음" 을 붙이겠다
        // [1, "처음"]
  • 배열 자르기

    • slice

      : return을 해줌

JavaScript Functions

함수 선언

1. 함수 선언문

function sum(a,b) {
    return a+b;
}
sum(1,2) //3

2. 함수 표현식

// 변수에 익명함수를 할당
var sub = function(a,b) {
    return a - b;
}
sub(1,2) //-1

3. 즉시 실행 함수

(function(a,b){return a*b})(1,2) //2

4. 화살표 함수 (ES6)

var sum = (a,b) => a+b  //a+b 한 줄이라서 중괄호{} 생략함
sum(3,4) //7

var area = (r) => {
    const PI = 3.14;
    return r*r*PI;
}
area(1) //3.14

함수 인자

  • JavaScript에서 함수는 매개변수 전달에 대한 제한이 없음

  • arguments 객체는 매개변수로 넘겨진 모든 정보를 가지고 있음

    function foo(a) {
        console.log(arguments); //arguments 찍어서 확인 해보기
        return a
    }
    • 어떤 인자도 넣어주지 않으면 undefined 라고 뜸

      • undefined

        : JavaScript에서 변수를 초기화 할 때 할당 해 놓는 값

Last updated