🔖 읽은 범위: (~p.25)

✨ 책갈피:

1장 자바스크립트 소개

  • 유용한 언어가 되려면 입출력 같은 기본적인 부분을 담당하는 플랫폼 또는 표준 라이브러리가 반드시 있어야 합니다. 자바스크립트 코어에는 ...최소한의 API가 정의되어 있지만 입출력에 관한 부분은 정의되어 있지 않습니다. 입출력, ...과 같은 좀 더 발전된 기능은 자바스크립트가 임베드된 '호스트 환경'이 담당합니다.

    • 임베드(embed): 변형 없이 가져온다
      호스트 환경: 자바스크립트가 구동되는 환경. 보통은 웹 브라우저지만 node.js, google spp script 등 다른 환경도 존재한다.
  • 자바스크립트 인터프리터:
    1) 개발자 도구
    2) 터미널에서 $node (파일명) 검색
    3) 에디터

1과 2는 행 단위로 작성되는 대화형 환경. 좀 더 길고 복잡한 코드를 위해선 3(에디터)를 추천한다.

  • 초기화 표현식 initializer expression
  • 표현식이란 어떤 값으로 평가(evaluate)되는 구절.
    • ex) 객체 프로퍼티나 배열 요소에 접근하기 위해 사용한 .이나 []는 표현식입니다.
  • 표현식을 만들 때 가장 많이 쓰는 방법은 연산자입니다.
    • 단축 산술 연산자 ++,--, +=, -= 등
    • 일치 연산자, 관계 연산자 ===, ==, !==, <, >= 등
    • 논리 연산자: &&, || 등
  • 표현식이 구절이라면 문(statement)는 문장입니다.
    • 표현식은 값을 계산할 뿐 다른 일은 하지 않습니다. 표현식은 프로그램의 상태를 어떤 형태로도 바꾸지 않습니다. 반면 문은 값을 갖지는 않지만 프로그램의 상태를 바꿉니다.
    • 변수 선언과 할당문, 조건과 루프 같은 제어문
  • 함수(function)은 한 번 정의하면 몇 번이고 호출할 수 있는, 이름이 있고 매개변수를 받을 수 있는 자바스크립트 코드 블럭 입니다.
  • 객체와 함께 사용하는 함수를 매서드(method) 라고 합니다.
    • ex) .push(), .reverse() 등...
    • 직접 매서드를 만들 수도 있습니다. 이 때 this 는 매서드를 정의하는 대상 객체입니다.

2장 어휘 구조

가장 기본적인 문법을 소개합니다.

  • 2.1 자바스크립트 프로그램의 텍스트

  • 2.2 주석: // 또는 /* */

    • 두번째 것이 여러 행의 주석을 사용할 때 사용
  • 2.3 리터럴: 프로그램 안에 직접 쓴 데이터 값

  • 2.4 식별자와 예약어: 식별자는 상수, 변수, 프로퍼티, 함수, 클래스의 이름에 사용하고 일부 루프의 라벨로도 사용합니다. 반드시 글자(알파벳 사용을 권합니다), 밑줄(_), 달러기호($)로 시작해야 합니다.
    예약어: 다음 단어는 모두 자바스크립트의 일부분 입니다. 예약된 키워드이므로 상수, 변수, 함수, 클래스의 이름으로 사용할 수 없습니다.

  • 2.5 유니코드: 자바스크립트 프로그램은 유니코드 문자셋으로 작성됩니다.

    유니코드: 그리하여 국제적으로 전세계 언어를 모두 표시할 수 있는 표준코드를 만들기로 했다. 바로 유니코드(Unicode)다. 참고로, 한글 ‘가’는 유니코드로 ‘U+AC00’이다. 왜 그러냐고 이유는 묻지마라. 약속이다. (출처)
    UTF-8: UTF-8은 유니코드를 인코딩(encoding)하는 방식이다. 전세계에서 사용하는 약속이다.


    HTML 쓸 때 head 에 있던 정체불명의 코드 중 한 줄이 이해되었다. 태그 meta 안의 head 속성 charset=utf-8 여기서 utf-8 이 전세계 언어를 사용하며 이를 인코딩하는 한 방식을 설명한 것이다.

  • 2.5.1 유니코드 이스케이프 시퀀스: 자바스크립트는 구형 기술을 사용하는 프로그래머와 시스템을 지원하기 위해 ASCII 문자만으로 유니코드 문자를 표현하는 이스케이프 시퀀스(escape sequence)를 정의합니다.

    • 아스키 코드(출처)
    • 유니코드 이스케이프는 \u 문자로 시작하고 그 뒤에 정확히 네 개의 16진수 숫자(0-9,A-F)를 쓰거나, 1~6개의 16진수 숫자를 중괄호 안에 쓰는 형태입니다.
    		// 예) é 문자의 유니코드 이스케이프는 \u00e9
    		let café = 1; //
    		caf\u00e9 // 1; 이스케이프 시퀀스로 그 변수에 접근
     	caf\u{E9} // 1; 다른 형태의 이스케이프 함수
      
  • 2.5.2 유니코드 정규화: 자바스크립트에 ASCII 문자가 아닌 문자를 사용할 때는 유니코드에 그 문자를 인코딩 방법이 하나 이상 있음을 반드시 인지해야 합니다.

    		/* 예) é 문자는 단일 유니코드 문자 \u00E9로 인코드할 수도 있고, 
      		일반적인 ASCII 문자 e 다음에 악센트 조합 기호 \u0301 을 붙여서 인코드할 수도 있습니다.*/
    
    		const café = 1; //  "caf\u{e9}" 이란 상수
    		const café = 2; // "caf\u{e9}" 이란 상수
    		café             // => 1: 이 상수의 값은 1입니다.
      		café             // => 2: 눈으로 구별할 수 없지만 다른 상수이고 값도 다릅니다.
      

돌아다니는 짤 중에 개발자를 괴롭히는 방법: 세미콜론과 그리스어 물음표 바꿔 쓰기...


둘은 컴퓨터 상에서 다르다^^

1개의 댓글

comment-user-thumbnail
2022년 6월 2일

...저런 게 있었어요? 그리스어 물음표는 못쓰게 막아야 할 거 같은데

답글 달기