카테고리 없음

[JS] 객체와 배열

미로910 2024. 7. 26. 11:49
1. 객체에 대한 이해와 사용
2. 배열에 대한 이해와 사용

 

1. 객체에 대한 이해와 사용

 

객체는 프로그래밍에서 데이터와 그 데이터를 다루는 동작(메서드)을 함께 묶어서 표현하는 자료구조이다.

 

내장 객체 (Built-in Objects)

내장 객체는 JavaScript 언어 자체에 내장되어 제공되는 객체들을 말한다. 이러한 객체들은 JavaScript 프로그래밍에서 기본적인 기능을 제공하며, 모든 JavaScript 환경에서 사용할 수 있다. 몇 가지 주요 내장 객체에는 다음과 같은 것들이 있다.

  • Object: 모든 객체의 기본이 되는 객체이다. 다른 모든 객체는 이 객체를 상속 받는다.
  • Array: 배열을 다루는 데 사용되며, 순서가 있는 여러 값을 저장할 수 있다.
  • String: 문자열을 다루는 데 사용되며, 텍스트 데이터를 처리하고 조작하는 데 유용하다.
  • Number: 숫자를 다루는 데 사용되며, 숫자 데이터를 처리하고 수학 연산을 수행하는 데 유용하다.
  • Function: 함수를 생성하고 관리하는 데 사용되며, JavaScript의 핵심 개념 중 하나이다.
  • Date: 날짜와 시간 정보를 다루는 데 사용되며, 날짜 및 시간 연산을 지원한다.
  • Math: 수학 함수 및 상수를 제공하여 수학적인 연산을 수행하는 데 유용한다

등등…

 

사용자 정의 객체 (User-defined Objects):

사용자 정의 객체는 프로그래머가 직접 만들어서 사용하는 객체이다.

JavaScript에서는 객체를 생성하고 속성과 메서드를 정의하는 데 매우 유연하고 강력한 방법을 제공한다.

생성 방법

  1. new 키워드와 생성자 함수를 사용
  2. 객체 리터럴 표기법(Object Literal Notation) 사용
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <h1>index4.html 파일입니다</h1>
    <script>

        // 자바 스크립트에서 사용자 정의 객체와 생성자 함수 설계 // 파라미터 -> 타입 생략
        function Person(firsName, lastName) {
            this.firsName = firsName;
            this.lastName = lastName;
        }

        // 객체 생성
        const person1 = new Person("길동", "홍");
        const person2= new Person("순신", "이");

        console.log(person1);
        console.log(person2);

    </script>
</body>
</html>

객체 리터럴 표기법(Object Literal Notation) 사용

JavaScript에서 객체를 생성하는 간단하고 직관적인 방법 중 하나이다.

이 표기법을 사용하면 중괄호 {} 안에 키(key)와 값(value)의 쌍으로 객체를 정의할 수 있다. 각 키와 값은 콜론(:)으로 구분되며, 각 쌍은 쉼표(,)로 구분된다.

이를 통해 객체를 손쉽게 만들 수 있다.


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <h1>index4.html 파일입니다</h1>
    <script>

        // 자바 스크립트에서 사용자 정의 객체와 생성자 함수 설계 // 파라미터 -> 타입 생략
        function Person(firsName, lastName) {
            this.firsName = firsName;
            this.lastName = lastName;
        }

        // 객체 생성
        const person1 = new Person("길동", "홍");
        const person2= new Person("순신", "이");

        console.log(person1);
        console.log(person2);

        console.log("--------------------------");

        // 객체 리터럴 표기법 (사용자 정의 프로토타입 설계)
        //  const  -> 상수
        // 객체 생성과 동시에 초기화
        const student = {
            name: "John",
            age: 30
        };

        console.log(student.name);
        console.log(student.age);

    </script>
</body>
</html>

 


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <h1>index5.html 파일입니다</h1>
    <script>

        // ES6 - 객체 리터럴 표기법-> new  없이 객체 생성 가능한 게 리터럴 표기법
        // 객체 안에 객체 -> 중첩 객체
        const person = {
            firstName: "길동",
            lastName:"홍",
            age:30,
            address: {
                street: "연수로 123번길",
                city: "부산",
                zip: "33123"
            },
            hobbies: ["독서", "등산", "요리", "코딩" ], // 배열
            sayHello: function(){
              //  alert("안녕");
              // 백틱 사용 -> 하나의 문자열로 표현할 수 있다 // ES6 - 템플릿 리터럴 -> ${}
               // 중괄호 생략 가능하지만 연산자를 쓰려면 꼭 있어야 한다
              console.log(` Hello, my name is ${this.firstName} ${this.lastName} 입니다 `);
            }
                };
    
       // 객체 속성에 접근하기
       console.log(person.firstName);
       console.log(person.lastName);

        // 중첩된 객체 속성에 접근하기
        console.log(person.address.city);
            
        // 배열 속성 0번 인덱스 접근 []-> 인덱스 연산자 (배열)
        console.log(person.hobbies[0]);

        // 객체에 메서드 호출
        console.log(person.sayHello());
        person.sayHello();

        console.log("--------------------------");
        
        // 해당하는 객체에 새로운 속성을 추가하고 싶다면??

        // 객체에 속성 추가
        person.email = "a@nate.com";
        console.log(person.email);
        
        // 객체에 상태값 변경
        person.age = 100;
        console.log(person.age);

        // 객체 속성 삭제해 보자
        delete person.hobbies;
        console.log(person.hobbies); // undefined

    </script>
</body>
</html>


2. 배열에 대한 이해와 사용

배열은 JavaScript에서 데이터를 보관하고 관리하는 데 사용되는 자료 구조이다.

배열은 여러 값을 순서대로 저장할 수 있으며, 각 값은 인덱스를 사용하여 접근할 수 있다.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <h1>index6.html 파일입니다</h1>
    <script>

// 배열을 사용하는 방법 2가지를 살펴 보자

// new 키워드와 생성자를 사용하여 배열을 생성할 수 있다
const numbers = new Array(1, 2, 3, 4 , 5);

Object.freeze(numbers); // freeze -> 얼리기
console.log(numbers[0]);
numbers[0] = 10000;
console.log(numbers[0]);

// 배열 리터럴 : 대괄호 []를 사용하여 배열을 생성할 수 있다
const fruits = ["apple", "banana", "cherry"];
console.log(fruits[0]);
console.log(fruits[1]);
console.log(fruits[2]);

// 배열에 길이 확인 하기
console.log(fruits.length);

// 배열에 요소 추가하기 - push() 메서드를 사용하여 배열의 끝에 요소를 추가할 수 있습니다
fruits.push("peach");
console.log(fruits);
console.log("---------------");

// 배열에 요소를 제거하기 - pop() 메서드를 사용하여 배열의 끝에 요소를 삭제할 수 있습니다
fruits.pop();
console.log(fruits);

// 배열에 요소를 순회
for( i = 0; i < numbers.length; i++) {
    console.log(numbers[i]);
}
console.log("---------------");
numbers.forEach(function(num) {
    console.log(num);
});


    </script>
</body>
</html>