SYNC 기술 면접 준비

홍예림·2023년 5월 10일
0

SYNC

목록 보기
1/1

  • 데이터 타입
  • 변수, 상수 : 스코프, 호이스팅
  • 배열 메서드
  • 객체 메서드 : 객체 선언하기
  • 함수 선언식, 함수 표현식
  • 연산자
  • 반복문 : for, while, do-while
  • 조건문 : if, break, continue, swich

🌿변수

변수

상수 / 변수

상수선언 const vs 변수선언 let

  • const로 객체 선언 시, 데이터 구조는 유지되나 내용은 변경 가능하다
const obj = {name : 'apple'}
obj.name = 'banana'
console.log(obj.name) // -> banana
console.log(obj) // -> {name: 'banana', num: 2}

오브젝트(object, 객체)

  • key-value 구조
  • 레퍼런스
  • 얕은 복사, 깊은 복사 : 변수 선언 시 얕은 복사(변경된 사항이 적용됨)

🌿데이터타입

문자열 String

  • 문자열 메서드
  • MDN 자료 링크 :: String 메서드
    'str'.toUpperCase() 'STR' : 대문자화
    'str'.indexOf('t') 1 : 인덱스 찾기(대소문자 구분함)
    ' str '.trim() 'str' : 공백 없앰

숫자 Number

  • 이항연산자, 산술연산자 + - / %

🌿배열(1)

  • 많은 데이터를 연관된 것끼리 정리해서 담은 객체
    let fruit = ['apple', 'banana','orange']

배열 메서드

🌿배열(2)

  • 배열 : 여러개의 값을 모아놓은 것
  • 배열 내부의 값들을 요소(element)라고 부른다
  • 여러가지 타입을 넣을 수 있다
  • 인덱스 자리에 연산을 넣을 수 있다 array[array.length - 1]

배열 메서드(2)

  • 요소 개수 추출 배열이름.length
  • 요소 추출 배열이름[인덱스]
  • 배열 맨 뒤에 요소 추가
    배열이름.push(넣을값)
  • 배열 중간에 요소 추가
    배열이름.splice(인덱스,삭제할개수, 넣을 값)
  • 배열 중간에 요소 삭제
    배열이름.splice(인덱스,삭제할개수)
  • 배열 마지막 요소 뽑아오기(배열에서 삭제됨)
    배열이름.pop()
  • 배열 내부에서 요소의 위치 찾기 (없으면 -1 리턴)
    배열이름.indexOf()
  • [응용] 배열 내부에서 요소 찾아서 삭제하기
const idx = 배열이름.indexOf('찾을값')
배열이름.splice(idx, 1)

🌿객체

배열과 객체

객체배열
공통점데이터를 담아놓은 그릇, 인덱스 지정 가능
차이점인덱스를 문자로 지정 가능(key-value)인덱스 자동 지정
다른 언어연관배열(associative array), 맵(map), 딕셔너리(Dictionary)-
표기중괄호 { key:value }대괄호 [ element ]

객체 선언

const a = {name:'강아지', age:2, sound:'멍멍'}

const a = new Object();
a['name'] = '강아지';
a['age'] = 2;
a['soune'] = '멍멍';

객체 값(value) 가져오기

아래 3가지 모두 같은 객체를 표현한 코드
a['age'] //-> 2
a['ag'+'e'] //-> 2 : 대괄호 안의 내용은 문자열이므로 연산 가능
a.age //-> 2 : 프로그래밍 코드


🌿함수(1)

  • function : 반복되는 작업 처리를 위해 연관된 코드들을 모아놓은 자료형
  • 유지보수에 좋다
  • MDN 자료 링크 :: 함수

함수 선언하기

함수 선언식 (Function Declarations)

function 함수명 () {}

함수 표현식 (Function Expression)

const 변수명 = function 함수명 () {};

  • 변수에 함수를 할당하므로 세미콜론으로 코드를 종결해준다. 실행에는 문제가 없으나 일관된 표현을 위해...

익명함수 (Anonoymous function)

const 변수명 = function () {};
호출 시 변수명이 사용되므로 함수명은 생략되어도 무관하며, 함수명을 생략한 경우 익명 함수라고 부른다.

함수 호출하기 (실행하기)

  • 함수 선언식 : 함수명() 입력하면 실행된다
  • 함수 표현식 : 변수의 이름으로 호출한다

🌿함수(2)

함수(1)과 중복되는 내용은 생략

  • 함수 선언 : 되도록이면 간결하고 의미를 표현하는 이름을 붙인다
  • 타입스크립트에서 인자(변수)의 타입 선언 가능
  • 함수에서 리턴된 결과값이 변수에 할당된다

함수를 다른 변수에 할당

함수를 다른 함수의 인자로 전달


🌿연산

varletconst
변수 Variable변수 Variable상수 constant
scope전역변수 global scope블록레벨스코프(지역변수) block-level scope블록레벨스코프(지역변수) block-level scope
Data type변경가능 Mutable변경가능 Mutable변경불가 Immutable
장점유연성보안(security), 스레드 안전성(thread safety), 휴먼에러방지(reduce human mistakes)보안(security), 스레드 안전성(thread safety), 휴먼에러방지(reduce human mistakes)
메모리rw (read and write)rw (read and write)r(read only)

variable 과 block scope

  • var를 사용하지 않는 이유 :
  1. 호이스팅 발생 : 변수 선언문의 위치를 코드의 제일 위로 끌어올려 작동하는 것.
  2. global scope(전역 스코프) 로 선언되어 파일 전체에 적용되면서, 변수에 할당하지 않은 값이 들어가는 오류 발생

Variable types

  • first-class function을 지원합니다 : 함수도 다른 데이터타입처럼 변수 할당이 가능, 함수의 인자, 리턴 타입으로도 지정 가능
primitive typeobject type
저장되는 데이터값 value레퍼런스 reference
데이터 변경X (Immutable)O (Mutable; 내용이 아닌, 주소를 바꿈)
  • 레퍼런스 : 오브젝트의 저장위치를 가리키는 주소

Operator

String

Numeric operators

+, -, *, /, %, **

Increment , decrement operators:

++(1을 증가), -- (1을 감소)
pre-increment : b = ++a a에 1을 증가시킨 후 b에 할당
post-increment : b = a++ a를 b에 할당 한 후 1을 증가시킴

let a = 2
const b = ++a  //a=3 -> b=3
const c = a++  //a=3 -> c=3 -> c=4
let a = 2
const b = a++  //x=2 -> y=2 -> y=3
const c = ++a  //x=3 -> z=3

Assignment operators

x += y x = x + y
-= x = x - y
*= x = x*y
/= x = x/y

Comparsion operators

<, <=, >, >=

Logical operators

|| OR - 첫번째 value 가 true면 연산을 멈춘다. 연산 작업량을 줄이기 위해서 단순한 것을 가장 먼저 적는다.
&& AND - 첫번째 value 가 false면 연산을 멈춘다. 연산 작업량을 줄이기 위해서 단순한 것을 가장 먼저 적는다.
! NOT -

Equality operators

== loose equality : 0, NULL, EMPTY STRING('') -> FALSE 로 간주
=== strict equality : data type 비교 -> 0을 false로 간주하지 않음. 0은 number type 이므로.

  • null == undefined TRUE
  • null === undefined FALSE

Conditional operators (If)

if (){~}
else if (){~~} 
else {~~~}

Ternary operators (삼항연산자)

조건식 ? true인 경우 결과값 ; false인 경우 결과값

function example(…) {
    return condition1 ? value1
         : condition2 ? value2
         : condition3 ? value3
         : value4;
}

Switch statement

조건문에서 else if가 여러번 반복되는 경우 사용하면 가독성 상승
타입 검사, emum 타입(사용자 정의 리스트)의 검사에 유용

swich(변수) {
  case 조건1:
    실행1;
    break;
  case 조건2:
    실행2;
    break;
  case 조건3:
    실행3;
    break;
}

for loop

for(let i = 0; i < 5; i++){  //초기식; 조건식; 증감식
  console.log('hello')
  }

nested loops

이중 for문 - 연산이 복잡해지므로 되도록이면 간소화하기

While loop

블록레벨변수 i와 비교 후 코드 블럭 실행

let i = 0;  //초기식
while (i < 5){  //조건문
  console.log('hello')   //코드블럭
  i++;  //증감식
}

do-while loop

코드 블럭을 실행한 후 블록레벨변수 i와 비교

let i = 0;  //초기식
do {
  console.log('hello')   //코드블럭
  i++;  //증감식
} while (i < 5)

loop 종료

break continue


🌿SQL 기본 문법

profile
SYNC 5반 2023.07 - 2023.12

0개의 댓글