- 들어가기 전에
컴파일 단계가 없는 자바스크립트의 type(형)은 실행단계에서 타입이 결정된다. 변수선언은 어떻게 정의하고, 자바스크립트의 타입은 어떤 것들이 있는지 확인해보자.
- 학습 목표
1. 자바스크립트 변수 선언, 연산자 사용, Type을 이해한다.
- 핵심 개념
- 변수선언
- 연산자
- Type 종류
- Type 확인 방법
- 자바스크립트의 버전
- 자바스크립트 버전은 ECMAScript(줄여서 EC)의 버전에 따라서 결정되고, 이를 자바스크립트 실행 엔진에 반영한다.
- ES5, ES6(ES2015).. 이런 식으로 버전을 일컫는다.
- 2018년을 중심으로 ES6을 지원하는 브라우저(크롬, 파이어폭스)가 많아서 몇 년간 ES6 문법이 표준으로 쓰이고 있다.
- ES6는 ES5 문법을 포함하고 있어 하위 호환성 문제가 없다.
- 다만 ECMAScripit의 feature 별로 지원하지 않는 브라우저가 있을 수 있어 조심해야 한다.
- 변수
- 모든 언어는 어떤 값, 또는 어떤 객체를 표현하는 변수가 있다.
- 변수는 var, let, const로 선언할 수 있다. (let과 const는 ES6에 있는 기능)
- 어떤 것을 사용하는 가에 의해서 scope, 즉 변수의 유효범위가 달라진다.
- ES6 이전까지는 var를 사용해서 변수를 선언할 수 있다.
- 우선 var를 사용해서 변수를 선언한다. 여러가지 변수 선언방법을 확인해보자.
var a = 2; var a = "aaa"; var a = 'aaa'; var a = true; var a = []; var a = {}; var a = undefined; |
- 연산자
- 연산자 우선순위를 표현하기 위해서는 ()를 사용하면 된다.
- 수학 연산자는 +, -, *, /, % (나머지) 등이 있다.
- 논리연산자, 관계연산자, 삼항연산자도 있다.
//or 연산자 활용 var name = "crong"; var result = name || "codesquad"; console.log(result); //crong 출력 //and 연산자 활용 var name = ""; var result = name && "codesquad"; console.log(result); //codesquad | cs |
· OR 연산자는 왼쪽이 어떤 상황을 만족하면 오른쪽을 전혀 확인하지 않는다. (if / else문 단축해서 응용가능)
· AND 연산자는 무조건 오른쪽을 처리한다.
var result = false && true; result; //false | cs |
· && 연산자는 모든 값이 true 인지 확인하지만, 첫번째 값이 이미 false라면 그 이후의 값은 확인할 필요가 없다.
- 연산자 - 삼항연산자
- 간단한 비교와 값 할당은 삼항연산자를 사용할 수 있다.
· if 문이나 조건 문들을 아주 간단한게 표현할 수 있다.
- 연산자 - 비교연산자
- 비교는 == 보다는 ===를 사용한다.
- === 는 정확한 타입까지 비교한다.
- ==로 인한 다양한 오류 상황이 있는데 아래 결과를 참고해보자.
- 자바스크립트의 Type
- 자바스크립트 타입에는 다양한 것이 존재한다.
· undefined, null, boolean, number, string, object, function
- 타입은 선언할 때가 아니고, 실행타임에 결정된다.
- 함수 안에서의 파라미터나 변수는 실행될 때 그 타입이 결정된다.
function run(a) { console.log(typeof a); } run("hi"); //string run(false); //boolean | cs |
- 타입을 체크하는 또렷한 방법은 없다. 정확하게는 toString.call 함수를 이용해서 그 결과를 매칭하곤 하는데, 문자, 숫자와 같은 자바스크립 기본 타입은 'typeof' 키워드를 사용해서 체크할 수 있다.
- 배열은 타입을 체크하는 isArray 함수가 표준으로 생겼다. IE와 같은 구 브라우저를 사용해야 한다면 지원 범위를 살펴보고 사용해야 한다.
'Progamming > BoostCourse' 카테고리의 다른 글
자바스크립트 함수 (0) | 2019.01.19 |
---|---|
자바스크립트 비교-반복-문자열 (0) | 2019.01.19 |
Request, Response 객체 이해하기 (0) | 2019.01.17 |
Servlet 라이프 싸이클 (0) | 2019.01.16 |
Servlet 작성 방법 (0) | 2019.01.16 |
댓글