Front-End/JavaScript

JavaScript 변수와 상수, 배열

코드깎는머슴 2024. 2. 23. 12:20
728x90
반응형

변수(Variable)

    - 선언(Declaration) 및 값 초기화(Intitialization) 이후 값이 변할 수 있는 것
    - 변수 선언 시 별도의 타입을 명시하지 않고, 명명법으로 카멜 케이스를 사용한다
    - 동일하거나 보다 상위의 스코프(Scope)에서 사용중인 이름이나 약속된 키워드를 변수 이름으로 사용할 수 없다.
    - 변수 선언 시 값을 부여(Assignment)하지 않으면 초기 값으로 undefined가 할당된다.
    
변수 선언

let [변수 이름];


위처럼 값 초기화 없이 변수를 선언할 경우 그 값은 undefined로 초기화된다.
    
변수 선언 및 초기화

let [변수 이름] = [초기값];


        

상수(Constant)

    - 선언 및 초기화 이후 값이 변하지 않는 것
    - 명명법으로 카멜 케이스 이용
    - 동일하거나 보다 상위의 스코프(Scope)에서 사용 중인 이름이나 약속된 키워드를 상수 이름으로 사용할 수 없다.
    - 상수 선언 시 값을 부여하지 않으면 오류 발생

const [상수 이름] = [값];

 

배열(Array)

    - 하나의 변수가 여러개의 값을 가질 수 있게하기 위해 사용한다.
    - 배열의 작성 형태는 JSON(JavaScript Object Notation) Array의 형태와 같다.


배열의 선언은 아래의 형태로 한다.

let [변수 이름] = [[인자, ...]];


가령, '사과', '바나나', '오렌지' 세개의 문자열을 인자로 가지는 fruits라는 배열은 아래와 같이 만들 수 잇다

let [fruits] = ['사과', '바나나', '오렌지'];

 


배열이 가지는 각 항목을 인자라 하는데, 각 인자에 접근하기 위해서는 인자의 순번(인덱스)을 알아야 한다.
인자의 순번은 가장 첫 번째부터 0부터 시작하여 1씩 증가한다
배열 변수에 대괄호와 인자 번호를 이용하여 각 인자에 접근할 수 있다

console.log(fruits[0]);     // '사과'
console.log(fruits[1]);     // '바나나'



정적 메서드

    - Object 클래스를 통해 접근할 수 있다.
    - entries(x)    : 오브젝트인 x가 가지는 키와 값을 각각 인덱스 0번과 1번으로 가지는 배열을 인자로 가지는 2차원 배열 반환
    - keys(x)   : 오브젝트인 x가 가지는 키 문자열들을 인자로 가지는 배열 반환
    - values(x) : 오브젝트인 x가 가지는 값들을 인자로 가지는 배열 반환

객체 속성

    - length    : 배열이 가지고 있는 인자의 개수
        어떠한 배열이 가지는 length 속성에서 1을 뺀 값은 항상 마지막 인자의 인덱스다

객체 메서드

    - at(x)         : 배열이 가지고 있는 x번째 인자 반환
    - concat(x)     : 호출 대상이 되는 배열과 인자인 배열 x를 이어 붙인 새로운 배열을 반환

    - fill(...)    
        fill(x)         : 호출 대상인 배열이 가지고 있는 모든 인자를 x로 대치한다.
        fill(x, f)      : 호출 대상인 배열이 가지고 있는 인자 중 그 인덱스가 f 이상인 인자를 x로 대치
        fill(x, f, t)   : 호출 대상인 배열이 가지고 있는 인자 중 인덱스가 f이상이고 t 미만인 인자를 x로 대치

    - includes(x)       : 호출 대상인 배열이 가지는 인자 중 그 값이 x와 일치하는 것이 있는가의 여부를 반환

    - indexOf(x)        : 호출 대상인 배열이 가지고 있는 인자 중 그 값이 x와 일치하는 첫 번째 인자의 인덱스를 반환. 그러한 인자가 없다면 -1 반환

    - join(...)
        join()          : 호출 대상인 배열이 가지고 있는 인자를 쉼표(,)로 이어붙인 하나의 문자열 반환
        join(x)          : 호출 대상인 배열이 가지고 있는 인자를 x로 이어붙인 하나의 문자열 반환

    - lastIndexOf(x)    : 호출 대상인 배열이 가지고 있는 인자 중 그 값이 x와 일치하는 마지막 인자의 인덱스를 반환. 그러한 인자가 없다면 -1 반환

    - pop()             : 호출 대상인 배열이 가지고 있는 인자 중 마지막 인자를 제거하고 이를 반환

    - push(x)           : 호출 대상인 배열의 끝에 새로운 인자 x를 추가하고 배열의 길이(length) 반환

    - reverse()         : 호출 대상인 배열이 가진 인자의 순서를 뒤집어 반환

    - shift()           : 호출 대상인 배열이 가지고 있는 인자 중 첫 번째 인자를 제거하고 이를 반환
    
    - slice(...)       
        slice()         : 호출 대상인 배열이 가지고 있는 인자를 그대로 가지는 배열을 복사하여 반환
        slice(f)        : 호출 대상인 배열이 가지고 있는 인자 중 인덱스가 f이상인 인자를 가지는 배열을 복사하여 반환
        slice(f, t)     : 호출 대상인 배열이 가지고 있는 인자 중 인덱스가 f이상이고 t 미만인 인자를 가지는 배열을 복사하여 반환

    - sort(...)
        sort()          : 호출 대상인 배열이 가지고 있는 인자 값을 문자열이라고 간주했을 때 이의 아스키코드를 기준으로 오름차순 정렬 후 반환
        sort(f)         : 호출 대상인 배열이 가지고 있는 인자가 되는, 두 개의 매개변수 a,b 를 받는 함수 f에 대해, 정렬시 a가 선행해야 하는 경우 음수, b가 선행해야 하는 경우 양수, 
                            동율일 경우 0을 반환하는 함수를 직접 작성하여 이에대해 정렬 및 반환

    - splice(...)
        splice(i, d)    : 호출 대상이 되는 배열이 가지고 있는 인자 중 그 순번이 i 이상인 것부터 d개를 제거하여 반환
        splice(i, d, [v, ...])  : 호출 대상이 되는 배열이 가지고 있는 인자 중 그 순번이 i 이상인 것부터 d개를 제거하고, 가변인자 v의 첫번째 인자의 순번이 i가 될 수 있도록 추가하여 반환

객체 메서드 (화살표 함수)

    - every(f)      : 호출 대상이 되는 배열이 가지고 있는 모든 인자가 함수 f의 전달 인자로 참을 반환하는가의 여부 반환


    - filter(f)     : 호출 대상이 되는 배열이 가지고 있는 인자 중, 함수 f의 전달 인자로 참을 반환하는 인자만을 인자로 가지는 새로운 배열 반환, 이를 만족하는 인자가 없다면 빈 배열 반환


    - find(f)       : 호출 대상이 되는 배열이 가지고 있는 인자 중 함수 f의 전달 인자로 참을 반환하는 첫번째 인자를 반환. 그러한 인자가 없다면 undefined 반환


    - findLast(f)   : 호출 대상이 되는 배열이 가지고 있는 인자 중 함수 f의 전달 인자로 참을 반환하는 마지막 인자를 반환. 그러한 인자가 없다면 undefined 반환


    - forEach(f)    : 호출 대상이 되는 배열이 가지고 있는 인자 전체에 대해 함수 f의 전달 인자로 해당 함수를 단순 반복 실행. 별도의 반환값은 없다.


    - some(f)       : 호출 대상이 되는 배열이 가지고 있는 인자 중, 하나라도 함수 f의 전달 인자로 참을 반환하는가의 여부 반환


추가

자바스크립트의 배열은 이름은 배열이지만,

자바의 ArrayList의 성질에 더 가까우며,

자바와는 달리 배열의 길이가 동적(선언 후에도 원할 때 길이를 바꿀 수 있음)이다.

자바에서 스트림(java.util.Stream, 입출력에서 사용되는 스트림과는 다른 단어이다.) 에 담는 것처럼 에 담지 않아도,

스트림에 담겨있는 것처럼 사용할 수 있다.(중간 연산, 최종 연산 등)

728x90
반응형