[3장] 언어의 기초

3.1 문법

  • 대소문자 구분함
  • 식별자 : 숫자는 첫글자로 못 씀. 카멜케이스로 표기 권장
  • 주석
  • 스트릭트 모드 “use strict”;
  • 문장 : 세미콜론(;)으로 마무리 권장, 제어문에선 코드블록 권장

3.2 키워드, 예약어

  • 37-38page 참고.
  • 모드에 따라 예약어가 다르다.
  • 5판에서 도입한 let, yield는 3판과의 호환성을 위해 비사용권장.
  • 5판에서 키워드와 예약어를 식별자론 쓸 수 없지만 객체의 속성으론 쓸 수 있게 됨. 호환성을 위해 비사용권장.

3.3 변수

  • var 타입

3.4 데이터타입

  • Undefined, Null, Boolean, 숫자number, 문자열string, 객체object
  • typeof : 변수의 데이터타입을 알아야할때
    • 함수를 제외한 객체, null = object
    • 함수 = function
  • undefined : 변수 정의 후 초기화 하지 않을때 할당됨. 정의 안한 변수도 이 타입으로 리턴 됨.
  • Null : 변수가 객체를 가리킬때, null로 초기화 권장
  • Boolean : true, false. (0,1 아님!!!)
  • 숫자
    • NaN 숫자 조작이 실패했을 때 반환하는 값. isNaN() 함수 이용할 것.
    • Number() : 숫자가 아닌 값을 숫자로 바꾸는 함수. 어떤 타입도 변환.
    • parseInt(), parseFloat() : 문자열 -> 숫자
    • 관련해서 필요하면 예제를 참고하자. 52page
  • 문자 : “, ‘ 둘다 동일함.
    • toString() : 값 -> 문자열
    • String() : ? -> 문자열
  • 객체 : new Object(); ()는 생략해도 되지만 권장안함.

3.5 연산자

  • 비트연산, 쉬프트연산, 논리연산, 관계연산 등 (61page-87page)

3.6 문장 :

  • (아는것)if문, do-while문, while문, for문, break, continue문, switch문
  • (모르는 것) for-in문 : 객체의 프로퍼티를 나열하는데 사용함.
    for(var propName in window){
    document.write(propName);
    }
    
    • 객체 프로퍼티에 순서가 없으므로 어떤 순서로 반환할 지 알 수 없다. 브라우저마다 다를 수도 있음.
    • 객체를 가리키는 변수가 null, undefined 인지 미리 확인할 것
  • (모르는 것) with문 : 코드의 실행 범위(스코프)를 특정 객체에 고정시킴. 구글스크립트에서도 적용이 될려나? 테스트 해봐야겠네.
    var qs = location.search.substring(1);
    var hostName = location.hostname;
    var url=location.href;
    

with문을 사용하면,

with(location){
   var qs = search.substring(1);
   var hostName = hostname;
   var url = href;
}

3.7 함수

  • 반드시 값을 반환할 필요는 없다.
  • 리턴을 주던가, 안주던가. 코드 전반에 통일을 권장한다. (디버그할 때 힘들다.)
  • 스트릭트 모드에서는 제한이 있다. (101pagE)
  • 매개변수의 개수를 따지지도 않고, 타임도 체크하지 않는다. 매개변수가 내부적으로 배열로 표현되기 때문(자세한 설명은 101p 매개변수의 이해 참고)
  • 매개변수는 참조 형식으로 전달할 수 없으므로 모두 값으로 넘겨야 한다.
  • 오버로딩이 없음!!! 같은 이름으로 함수를 여러 번 정의하면 마지막 함수가 이름을 소유한다.

07204207(2) ⬅︎ 스터디 교재: 프론트엔드 개발자를 위한 자바스크립트

앱 & 서비스 기획자입니다. 잘하고 싶어요.

Sliding Sidebar