728x90
728x90

 

 

 JS 언어의 특징

1. 객체 지향 프로그래밍 지원

객체를 생성하고 관리하는 데에 강점이 있음. 이를 통해 복잡한 기능을 구현할 수 있음

 

-절차지향 : 순서대로 실행되는 일련의 과정을 단계적으로 기술해 프로그램을 만듦

ㄴ첫 번째 일을 처리한 다음에 두 번째 일을 처리하고, 그 다음에 세 번째 일을 처리 

-객체지향 : 데이터와 함수를 객체라는 그룹으로 묶어서 처리 하는 법

ㄴ 각 객체는 상태와 행동을 가지고 있으며, 상태는 객체의 속성이라고도 함

 

 

 js에서 객체를 만들 때는

객체 : {중괄호} 사용 

속성 : 쉼표, 

ㄴ이름: 문자열 값: 다양한 데이터 타입을 사용할 수 있음

메소드 : 객체 내부의 함수 

*속성의 값으로 함수를  추가할 수 있음

https://insidepixce.tistory.com/75

 

javascript에서 객체를 생성하는 방법 8가지

1. 일반적인 객체 생성 방법 // 객체 생성자 함수를 사용하여 객체 생성 function Person(name, age) { this.name = name; this.age = age; } // 새로운 객체 생성 let person1 = new Person("gyodam", 21); console.log(person1); // 출

insidepixce.tistory.com

객체를 생성하는 법 8가지를 정리한 티스토리 첨부

확인해보면 도움이 될 것이다. 

-> 객체를 만들어 필요한 속성과 메소드를 추가하여 사용

 

2. 동적 타이핑 언어

동적 타이핑 언어란? 

자바스크립트가 아닌 다른 언어에서는 변수를 지정할때 타입을 지정해줘야 함

 

#타이핑이라는 단어가 조금 생소하게 느껴진다면 type + ing라고 생각하면 좋다. 

정적 타이핑 언어 : java

public class Example {
    public static void main(String[] args) {
        int myVariable = 10;
        System.out.println(myVariable); // 출력: 10

        myVariable = "Hello, World!"; // 오류: 타입 불일치
        System.out.println(myVariable);
    }
}

 

이를테면, C, C++, Java, C# 등이 정적 타이핑 언어에 해당한다. 

위의 예시 코드에서 'myvariable' 은 처음에는 정수 타입인 int로 선언 , 10이라는 값이 할당됨.

그러나 이후 문자열인 "Hello, World!"를 할당하려고 해 컴파일 오류가 발생함

java에서는 변수의 타입이 컴파일 시에 결정되기 때문에 한 번 타입이 지정되면 다름 타입의 값을 할당할 수 없음

 

장점 -> 컴파일 시에 타입 체크를 수행하여 오류를 사전에 방지

단점 -> 동적 타이핑 언어에 비해 유연성이 떨어짐

 

https://insidepixce.tistory.com/76

 

런타임이란? (런타임 시점)

런타임이란? 컴퓨터 프로그램이 실행되는 동안, 프로그램의 실행 환경과 관련된 모든 작업을 처리한다. 실행중에 발생하는 모든 활동과 동작을 포함한다 1. 메모리 관리 : 프로그램이 메모리를

insidepixce.tistory.com

 

*숫자열과 문자열을 동일한 변수에 저장할 수 있다

let myVariable = 10;
console.log(myVariable);

myVariable = "Hello, World!";
console.log(myVariable); // 출력: Hello, World!

첫번째 출력 : 10 두번째 출력 : Hello, World!

 

*동적 타이핑은 연산에 대해서도 적용된다 

let sum = 5 + 10;
console.log(sum)

sum = "5" + "10";
console.log(sum);

첫번째 출력 : 15 두번째 출력 : 510

따로 타입을 정해주지 않았는데도 적용되는 것을 볼 수 있다

*배열은 여러 타입의 요소를 포함 할 수 있다

let myArray = [1, "two", true];
console.log(myArray);

 출력: [1, "two", true]

 

*객체의 속성은 런타임 중에 추가하거나 수정할 수 있다

let myObject = { name: "gyodam", age: 21 };
console.log(myObject);
myObject.email = "insidepixce@gmail.com";
console.log(myObject);

출력1 : { name: 'gyodam' , age : 21}  출력 2 : { name: :"gyodam", age: 21, email: "insidepixce@gmail.com" }

 

3. 함수형 프로그래밍 지원

 

함수를 일급 객체로 취급하고 , 고차 함수를 지원함. 

-> 코드의 재사용성과 가독성을 높임

 

따로 포스팅을 하려 했으나, 2주차에 자세히 배울 예정이기에 이 포스트에 서술함.

 

특성

1. 변수에 할당 가능함

2. 함수의 매개변수로 전달할 수 잇음

3. 함수의 반환값으로 사용할 수 있음

4. 동적으로 프로퍼티를 할당하거나 메서드를 추가할 수 있음

 

즉, 일급 객체는 Javascript에서 다른 객체와 마찬가지로 취급됨. 

함수형 프로그래밍에서는 함수를 값으로 다루어 코드를 조합하는 기법을 사용함.

 

// 변수에 할당
const add = function(a, b) {
  return a + b;
};

// 함수의 매개변수로 전달
function calculate(operation, a, b) {
  return operation(a, b);
}

console.log(calculate(add, 5, 3)); // 출력: 8

// 함수의 반환값으로 사용
function createMultiplier(multiplier) {
  return function(num) {
    return num * multiplier;
  };
}

const double = createMultiplier(2);
console.log(double(5)); // 출력: 10

// 동적으로 프로퍼티 할당 및 메서드 추가
const person = {};
person.sayHello = function() {
  console.log("Hello!");
};

person.sayHello(); // 출력: Hello!

 

고차함수란?

함수를 인자로 받거나 , 함수를 반환하는 함수 

// 함수를 매개변수로 받는 고차 함수
function operationOnNumbers(operation, a, b) {
  return operation(a, b);
}

function add(a, b) {
  return a + b;
}

function subtract(a, b) {
  return a - b;
}

console.log(operationOnNumbers(add, 5, 3)); // 출력: 8
console.log(operationOnNumbers(subtract, 5, 3)); // 출력: 2

// 함수를 반환하는 고차 함수
function createMultiplier(multiplier) {
  return function(num) {
    return num * multiplier;
  };
}

const double = createMultiplier(2);
console.log(double(5)); // 출력: 10

 

 

4. 비동기 처리

 

작업을 순차적으로 기다리지 않고, 병렬로 처리할 수 있도록 하는 방식

 

 


항해 99 15기 node.js 1주차 강의 중 2강까지의 내용정리 

728x90
300x250

+ Recent posts