클라우딩 어플리케이션 엔지니어링 TIL Day 10 (1)

2024. 1. 8. 16:32· TIL/프로그래머스 데브코스
목차
  1. # 연산자
  2. # 데이터 처리 함수
  3. # 매개변수 Parameter
  4. # 함수 생성 방법
  5. # 함수 사용 패턴

오늘은 자바스크립트의 데이터 처리에 대해서 배우는 날이다

기본 개념 및 flow control에 대한 내용이다

자바스크립트의 문법이 부족했던 만큼 더 열심히 듣고 공부해야겠다!


# 연산자

연산자란?

하나 이상의 표현식을 대상으로 연산을 수행하여 하나의 값을 만드는 것

 

# 단항 연산자

하나의 피연산자만 사용하는 연산

- void :  표현식 평가 시 값 반환하지 않도록 지정

- typeof : 평가 전의 피연산자 타입을 나타내는 문자열을 반환

- delete : 객체의 속성 삭제

 

# 산술 연산자

단항 산술 연산자

1개의 피연산자를 산술 연산하여 숫자값을 반환

- ++, --, +, -

- 전위 증가감소 연산자 : 피연산자 앞에 위치, ++피연산자, --피연산자

- 후위 증가감소 연산자 : 피연산자 뒤에 위치, 피연산자++, 피연산자--

 

이항 산술 연산자

2개의 피연산자를 산술 연산하여 숫자값 반환

- +, -, *, /, %

 

# 관계 연산자

피연산자를 비교하고 결과가 참인지에 따라 boolean 값을 반환

- in : 객체 내에 속성이 존재할 경우 true 반환

- instanceof : 특정 객체 타입에 속하면 true 반환

 

# 비교 연산자

피연산자를 비교하고, 결과가 참인지에 따라 boolean 값을 반환

- == : 동등 연산자, 서로 같으면 true

- === : 일치 연산자, 서로 같고 타입도 같으면 true

- != : 부등 연산자, 서로 다르면 true

- !== : 불일치 연산자, 서로 다르고 타입도 다르면 true

- > , >=, < , <= : 피연산자의 크기를 비교

 

# 논리 연산자

두개의 피연산자 중 하나를 반환

반환되는 값이 무조건 boolean 값은 아니다

- && : AND 연산자, null 검사에 활용

- || : OR 연산자, 캐싱 값에 대해서도 사용

- null, undefined, 빈 문자열은 false로 평가된다

 

# 기타 연산

- 쉼표 연산자 : 두 연산자를 모두 평가한 후, 오른쪽 피연산자의 값을 반환

- 문자열 연산자 : 두 문자열 값을 서로 연결하여 새로운 문자열을 반환

- 옵셔널 연산자 : 객체 속성을 참조 시 유효하지 않는 경우 에러를 발생시키지 않고 undefined를 반환

- 할당 연산자 : +=, -=, *=, /=, %=, **=(거듭제곱), &&=, ||=

- 삼항 연산자 : condition ? trueValue : falseValue


# 데이터 처리 함수

함수란?

소프트웨어에서 특정 동작을 수행하는 코드 일부분

외부 코드가 호출할 수 있는 하위 프로그램

input, output, 본문으로 구성

 

Javascript의 함수

일급객체의 특징을 모두 갖고 있다

일급객체가 뭘까?

=> 다른 객체들에 일반적으로 적용 가능한 연산을 모두 지원하는 객체

  • 자바스크립트의 함수는 함수의 실제 매개변수가 될 수 있다
// 자바스크립트 함수는 함수의 실제 매개변수 가능
function foo(arg) {
  arg();
}

function bar() {
  console.log("bar");
}
foo(bar);
  • 자바스크립트의 함수는 함수의 반환값이 될 수 있다
// 자바스크립트 함수는 함수의 반환값
function foo(arg) {
  return arg;
}

function bar() {
  console.log("hello!!!");
}
foo(bar)();
  • 자바스크립트의 함수는 할당명령문의 대상이 될 수 있다
// 자바스크립트 함수는 할당명령문의 대상
const foo = function (arg) {
  return arg;
};

foo(1);
  • 자바스크립트의 함수는 동일비교의 대상이 될 수 있다

function addAge(age) {
  if (typeof age !== "number") return age;
  return age + 5;
}

console.log(addAge(5));

위와 같은 함수를 작성하고 결과값을 확인하니까

원하는 결과값을 얻었다!


# 매개변수 Parameter

▶기본값 매개변수

매개변수 값이 없거나 undefined가 전달될 경우 대체되는 초기값

매개변수에 할당연산자와 함께 초기값 할당

function foo(arg = 1) {
  console.log(arg);
}

foo();

▶나머지 매개변수

가변항 함수, spread 연산자

function test(arg, ...rest) {
  console.log(rest);
  console.log(arg);

  return arg;
}

test(1, 2, 3);

▶arguments 객체

함수에 전달되는 인자들을 참조할 수 있는 객체

Function 객체 상속 => Function 객체의 기본 속성은 arguments 이다

유사배열 형태 => 배열 내장 method 사용 불가하다

let foo;

function bar(arg, ...rest) {
  console.log(arguments);
  return arg;
}

bar(1, 2, 3);

arguments 객체는 배열이 아닌 유사배열이기 때문에 배열에서 사용되는 내장 method는 사용할 수 없다


# 함수 생성 방법

함수 선언문 : function 키워드 사용

function test(arg) {
  console.log(123);
}

함수 표현식 : 함수를 변수에 할

- 익명 함수 : 함수명 생략

- 기명 함수 : 함수명 작성

//익명함수
const foo = function (arg) {
  return arg;
};

//기명함수
const bar = function baz(arg) {
  return arg;
};

const temp = foo(1);
console.log(temp);
console.log(baz(1)); /*ReferenceError: baz is not defined 발생*/

Function 생성자 함수

Function 객체 -> 자바스크립트 내장 객체 중 하나이다

일반적으로 사용되지는 않는다

const foo = new Function("console.log('foo3')");

foo();

화살표 함수

익명 함수, 함수 표현식으로만 사용 가능

const 변수명 = (arg, ... ) => { return ... }

const foo = (arg) => {
  return arg();
};

foo(() => {
  return 1;
});

 

# 함수 사용 패턴

IIFE : 즉시 실행 함수, 함수 정의와 동시에 실행, ()로 감싸고 () 붙이기, 초기화 시 사용

(function foo() {
  console.log("foo");
})();

재귀함수 : 자기 자신을 호출하는 함수, 탈출 조건 정의 필요

function foo(arg) {
  if (arg === 3) return;
  console.log(arg);
  foo(arg + 1);
}

foo(1);

중첩함수 : 내부함수, 스코프 체인

function foo(arg) {
  function bar() {
    console.log(arg);
  }
  bar();
}

foo(1);

콜백함수 : 함수의 매개변수가 될 수 있다는 일급객체의 특징, 특정 이벤트 발생 시 시스템에 의해 호출되는 함수

function foo(arg) {
  arg();
}

foo(() => {
  console.log(10000);
});

 

저작자표시 비영리 변경금지 (새창열림)

'TIL > 프로그래머스 데브코스' 카테고리의 다른 글

클라우딩 어플리케이션 엔지니어링 TIL Day 9  (1) 2024.01.11
클라우딩 어플리케이션 엔지니어링 TIL Day 10 (2)  (1) 2024.01.08
클라우딩 어플리케이션 엔지니어링 TIL Day 8  (0) 2024.01.04
클라우딩 어플리케이션 엔지니어링 TIL Day 5 (2)  (0) 2024.01.04
클라우딩 어플리케이션 엔지니어링 TIL Day 7  (1) 2024.01.03
  1. # 연산자
  2. # 데이터 처리 함수
  3. # 매개변수 Parameter
  4. # 함수 생성 방법
  5. # 함수 사용 패턴
'TIL/프로그래머스 데브코스' 카테고리의 다른 글
  • 클라우딩 어플리케이션 엔지니어링 TIL Day 9
  • 클라우딩 어플리케이션 엔지니어링 TIL Day 10 (2)
  • 클라우딩 어플리케이션 엔지니어링 TIL Day 8
  • 클라우딩 어플리케이션 엔지니어링 TIL Day 5 (2)
개발자 정지은
개발자 정지은
프로그래밍 공부 기록
개발자 정지은
PROGRAMMING DIARY
개발자 정지은
전체
오늘
어제
  • 분류 전체보기 (107)
    • 알고리즘 (49)
      • BeakJoon (27)
      • SWEA (9)
      • Inflearn (2)
      • CodeSignal (1)
      • Programmers (10)
    • FE (0)
      • Javascript (0)
      • React (0)
    • BE (0)
    • CS공부 (13)
      • Database (7)
      • IT기본지식 (6)
    • TIL (45)
      • 프로그래머스 데브코스 (45)
    • Project (0)
      • DreamHi (0)
      • 인사관리시스템 (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 리액트
  • figma
  • 국비지원교육
  • 프로그래머스 데브코스
  • ReactNative
  • 코딩부트캠프
  • 피그마
  • React.JS
  • 알고리즘
  • 자바스크립트
  • javascript
  • 프론트엔드

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
개발자 정지은
클라우딩 어플리케이션 엔지니어링 TIL Day 10 (1)
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.