[Day 16] Javascript Tutorial + Javascript 소개 + 값 다루기 + number 타입

Javascript Tutorial

  • 표현식 (Expression)
    • Javascript 문장의 구성요소를 구분하는 하나의 단위로, 값으로 변환될 수 있는 부분을 말한다.
  • 변수 (Variable)
    • 값에 붙이는 이름
  • 제어 흐름
    • if ~ else 구문
    • while 구문
    • for 구문
  • 함수 (Function)
    • 이름을 붙여서 재사용하기 위한 코드 뭉치
  • 객체 (Object)
    • 여러 개의 값을 한꺼번에 담아 통(container) 처럼 사용할 수 있는 자료구조
    • 이름-값 연결되어 있는 구조 (name-value pair)
    • 객체의 속성(property)
      • html 에서의 속성은 attribute 로 부른다.
    • 객체의 속성 이름에는 ‘ ‘(“ “)를 붙이는 것이 원칙이지만, 단축 표기법으로 따옴표를 쓰지 않고도 된다.
    • 객체의 속성 값에는 어떤 것이든 올 수 있다.
      • 숫자, 문자열, 객체, 함수 …
    • 메소드(method)
      • 객체의 속성으로 사용되는 함수
      • 어떤 객체의 메소드 안에 this가 있으면 그 this는 ‘메소드가 호출될 때’ 해당 객체를 가리키게 된다.
  • 배열 (Array)
    • 객체의 일종. 배열에 담는 데이터는 객체의 경우와 달리 요소(element) 혹은 항목(item)이라고 부른다.
    • 배열안에 여러 개의 값을 저장할 수 있지만, 배열 요소 간에는 순서가 존재하며, 이름 대신에 인덱스(index)를 이용해 값에 접근한다.
    • 배열에 요소 추가
      • push(), unshift(), …
    • 배열에서 요소 제거
      • pop(), shift(), splice(index, count), …

Javascript 소개

  • 언어와 구동환경
    • Javascript 라는 언어와 JS를 돌릴 수 있는 구동환경(Browser)에서의 언어는 다르다.
      • console.log / alert 등등은 JS의 언어가 아닌 구동환경(Browser)에 내장된 언어다.
      • Node.js 에서는 console.log, alert 등의 메소드를 활용하지 못한다.
  • ES2015(=== ES6)
    • ES2015 이전과 이후는 차이가 매우 크다. (거의 다른 언어처럼 보일 정도)
    • ES2015 이전의 JS는 유지보수가 어렵고, 일관성이 없는 등의 문제가 있어서 범용 프로그래밍 언어로는 사용되지 못했다.

값 다루기

  • 변수 (Variable)
    • let은 변수를 선언할 때 쓰는 키워드 (ES2015) - best practice(좋은 관례)
    • const는 상수를 선언할 때 쓰는 키워드 (ES2015)
      • 재대입이 불가능하기 때문에 선언과 대입을 동시에 해줘야 한다.
  • 식별자 (Identifier)
    • 변수 이름으로 쓸 수 있는 단어
    • 어떤 개체를 유일하게 식별하기 위해 사용하는 단어
    • 식별자 규칙
      • 숫자, 알파벳, $, _ 가 포함될 수 있다.
      • 숫자로 시작해서는 안 된다.
      • 예약어(keyword)는 식별자가 될 수 없다.
    • 식별자는 따옴표 없이 객체 속성의 이름으로 사용할 수 있다.
      • 식별자 규칙을 벗어난 단어를 객체 속성의 이름으로 사용하려면 따옴표를 사용해야 한다.
    • Camel Case (압도적으로 많이 쓰인다.)
      • let javaScript;
      • let fooBar;
    • Snake Case
      • let java_script;
      • let foo_bar;
  • 타입 (Type)
    • 값의 종류, 자료형 (data type)
    • typeof 연산자를 사용해 값의 타입을 확인할 수 있다.

number 타입

  • 비교 연산자
    • == (동등) , === (일치)
      • ===를 쓰는게 관례이고, 더 낫다.
      • == 는 타입을 자동으로 바꿔서 비교하는 경우가 있기 때문에 지양하는 것이 좋다.
  • 연산자 우선순위
    • MDN 연산자 우선순위
    • evaluate(평가) - 표현식을 값으로 변환하는 절차
      • 평가되는 순서를 고려해서 코드를 짤 필요가 있다.
  • number 타입의 특이한 값들
    • NaN (Not a Number)
      • 계산 불가능한 연산의 결과값을 나타내기 위해 사용된다.
      • thisIsNan === NaN; 이런 식으로 등호로 비교하면 안된다!! (무조건 false return)
        • === 은 숫자 비교에 특화된 연산자
        • NaN은 숫자가 아니기 때문에 어떤 숫자와도 같 지 않다. (즉, NaN은 number타입인 NaN과도 같지 않다.)
    • -0
      • 0과 -0은 별개의 값이다.
      • 일치 연산(===) 해보면 true가 나오긴 한다.
      • Object.is 함수에서는 0과 -0을 다른 값으로 취급한다.
      • 0이 아닌 어떤 수를 0 혹은 -0으로 나눌 때에도 결과값이 다르다.
    • Infinity
      • 무한히 큰 양수
      • Infinity인지 아닌지 판별하려면 Number.isFinite() 메소드를 사용한다.
    • -Infinity
      • 무한히 작은 음수
  • 수 연산을 하기 전에 모든 피연산자를 확실히 number 타입으로 만들어 주는 것이 좋은 습관이다!!

댓글남기기