2.20[JavaScript_01]

Lee·2023년 2월 20일
0

오.배.이.안& 회고

목록 보기
6/46
post-thumbnail

당일회고

오늘은 JavaScript기초를 배웠다. 사전학습에 했던 내용들이라 버겁지는 않았다. 하지만 중요하게 기억해야할 부분들이 많았기 때문에 기억을 상기하면서 두세번 복습을 했다.

js 부터는 코플릿이라고 코딩테스트 처럼 문제를 풀어야하는 시간이 있는데 배우지 않았던 함수도 나오고 사고적으로 생각을 잘 정리해서 문제를 풀어야 한다는 생각이 들었다.

일명 의사코드! - 주석으로 문제풀이하는 곳에 입력은 무엇을 받아야하는지 출력으로는 어떤 것이 나와야하는지 주의할점은 무엇인지를 나의 언어로 적어 놓는 것을 말한다.

지금은 문제의 난이도가 높지 않아서 의사코드의 중요성이 낮다 하지만 문제의 난이도가 올라간다면 의사코드가 문제풀이를 하는 데에 참 중요하겠구나라고 생각이 들었다.
문제를 풀어볼땐 무조건 의사코드를 작성하는 습관을 길러야겠다!


복습

키워드 : 기계어,자연어,예약어,변수,키워드,프로그램, 프로세스,프로그래밍언어,연산자,표현식,문,값,원시자료형,참조자료형,인덱스,네이밍 컨벤션, 템플릿 리터럴, 데이터타입

  • 프로그램 : 컴퓨터를 특정한 방식으로 작동 시킬 수 있는 명령들의(코드) 모음
  • 프로세스 : 프로그램을 실행하면 => 프로세스
  • 프로그래밍 언어 : 기계어와 자연어의 중간 다리역할? 사람이 사용하는 자연어를 컴퓨터가 이해하기 쉬운 기계어로 바꿔주는 다리
  • 기계어: 컴퓨터가 이해하기 쉬운 컴퓨터언어 흔히 말하는 01010101 과 같은 숫자들 16진법,2진법,아스키코드 등
  • 자연어 : 사람이 이해하기 쉬운 언어
    예약어 : 프로그래밍 언어에서의 키워드 나 함수 등 let,const,var funtion 등..
  • : 표현식을 평가한 결과

    1 
    10+30       
  • 표현식 : 하나의 값으로 평가 될 수 있는 문(statement) (표현식 ===값)

    표현식의 종류

    // 리터럴 표현식
    10
    // 식별자 표현식
    sum
    // 연산자 표현식
    10 + 20
    // 함수/메소드 호출 표현식
    square()                  **모두 결국 평가되어 하나의 값이 됨에서 동일함**
    ~
  • 리터럴 : 값을 표기하는 약속된 기호,문자,방법임 즉 사람이 이해할 수 있는 문자 또는 사전 정의된 기호를 사용해 값을 생성하는 방법



  • 문(statement) : 프로그램을 구성하는 기본단위이자 최소 실행단위 (여러 토큰으로 구성됨)

    토큰이란? 문법적으로 더 이상 나눌 수 없는 코드의 기본 요소
let name = 25+1; 에서 토큰의 갯수는 6개이다 (let, name, =, 25,+,1 )
// 변수 선언문
var x;
// 할당문
x = 5;
// 함수 선언문
function foo () {}
// 조건문
if (x > 5) { … }
// 반복문
for (var i = 0; i < 10; i++) { … } 
  • 문(statement) : let const funtion 와 같은 선언 키워드를 사용하여 변수나 함수를 생성하기도 하고 조건문 반복문을 생성하여 프로그램의 흐름을 제어하기도 함!

    문의 역할: 표현식으로 생성한 값을 사용해 컴퓨터에게 명령을 내리는 것!

표현식과 문은 매우 유사하여 구분하기 어려울 수 있다.

  • 표현식 : 평가되어 값을 만드는 행위만 가능함

    표현식의 역할 : 값을 생성하는 것!!!!

  • 표현식인 문

    할당문: 즉 x = 100 ; 와 같이 할당문은 표현식이면서 문이다.

  • 표현식이 아닌 문

    선언문: 즉 let x; 와 같이 선언문은 표현식이 아닌 그냥 선언한 문일 뿐이다.

  • 변수 : 하나의 값을 저장하기 위해 메모리주소 공간에 이름표를 붙이는 것
  • 식별자 : 어떤 값을 구별할 수 있는 고유한 이름
  • 키워드 : 키워드를 사용하면 문을 변수, 함수, 조건문,반복문 등으로 만들 수 있고 프로그래밍언어의 흐름을 제어 할 수 있음 (let const fountion it for 등 )
  • 연산자 : 하나 이상의 표현식을 대상으로 연산을 수행해 값을 만든다.
  • 피연산자 : 연산의 대상 (ex) let x = 25 + 1 ; (피연산자는 25 , 1)
    • 산술연산자 ( +, - , *(곱셈), /(나눗셈), %(나머지))
    • 단항 산술연산자 ( ++(증가), --(감소))
    • 문자열 연결 연산자 (+)
    • 할당연산자 (=, +=,-=,*=,/=,%=)
    • 비교연산자 ( ===(일치 비교), !==(불일치 비교) > , < , >=, <= )
    • 논리연산자 ( || (or 연산자), &&(and 연산자), !(부정 연산자))
    • 삼항조건연산자 (?)
      조건?참일경우 실행할 코드 : 거짓일 경우 실행할 코드

변수에 들어 갈 수 있는 값의 데이터 타입

  • 원시 자료형
    • 숫자형(number)

      NaN(Not a Number) : 데이터 타입이 숫자가 아님을 나타냄.
      NaN 의 데이터 타입은 = number 숫자임 기억해둘 것!

    • 문자형(string)

      인덱스(index) : 문자열의 각 문자는 각각 순서를 가지고 있음, 각 문자가 몇 번째에 위치하는지 인덱스로 확인할 수 있음 시작은 0부터 시작임!

    • 불리언(boolean) : 값으로 true, false 를 가진다.
      • falsy 란 false 로 여겨지는 데이터 타입들
        // 대표적인 falsy 값
        false
        0
        -0
        0n
        ""
        ''
        ``
        null
        undefined
        NaN
      • truthy 란 true 로 여겨지는 데이터 타입의 종류 (매우 많아 flasy 를 암기하자!)
    • undefined(값으로 오는게 undefined 가 유일하다): 변수를 선언 이후 값을 할당하지 않으면 변수는 undefined 값을 가진다 (js 가 초기화 하기 때문)
    • null(null 역시 값으로 오는게 null 이 유일하다) : 의도적으로 값이 비어있음을 명시할때 사용 , 또한 함수가 호출 되었을때 유요한 값을 반환 할 수 없는 경우 명시적으로 null 을 반환하기도 한다!
    • 심볼(symbol): 변경 불가능한 원시 타입의 값, 주로 이름의 충돌 위험이 없는 유일한 객체의 프로퍼티 키를 만들기 위해 사용 (사용법은 symbol() 함수를 호출해 생성)
  • 객체 자료형

    함수,객체, 배열

  • template literal(템플릿 리터럴): 문자열에서 백틱 기호를 사용 시에 템플릿 리터럴을 사용할 수 있다. ${} 문장을 백틱안에 사용하여 중괄호 안에 원하는 변수,값을 넣을 수 있는 장점이 있고, 줄바꿈과 공백을 넣고 싶을때도 유용하게 사용가능하다. 어떤 타입이 들어와도 문자열로 변하긴하지만!

0개의 댓글