자바스크립트?
자바스크립트는 객체 기반의 스크립트 프로그래밍 언어이다. 이 언어는 웹 브라우저 내에서 주로 사용하며, 다른 응용 프로그램의 내장 객체에도 접근할 수 있는 기능을 가지고 있다. 또한 Node.js와 같은 런타임 환경과 같이 서버 사이드 네트워크 프로그래밍에도 사용되고 있다. (위키백과)
자바스크립트의 버전
- 자바스크립트 버전은 ECMAScript(줄여서 ES)의 버전에 따라서 결정되고, 이를 자바스크립트실행 엔진이 반영한다.
- ES5, ES6(ES2015) ... 이런식으로 버전을 일컫는다.
- 2018년을 중심으로 ES6를 지원하는 브라우저가 많아서 몇년간 ES6문법이 표준으로 쓰이고 있다.
- ES6는 ES5문법을 포함하고 있어 하위호환성 문제가 없다. 다만 feature별로 지원하지 않는 브라우저가 있을 수 있어 조심해야 한다.
변수
변수는 var, let, const 로 선언할 수 있다. 어떤 것을 사용하는 가에 의해서 scope라는 변수의 유효범위가 달라진다.
우선 var를 사용해서 변수를 선언한다.
여러가지 변수 선언방법을 확인해보자.
var a = 2;
var a = 'aaa';
var a = "aaa";
var a = true;
var a = [];
var a = {};
var a = undifined;
* const는 재할당x
연산자
연산자 우선순위를 표현하기 위해서는 ()를 사용하면 된다.
수학 연산자는 +, -, *, /, % 등이 있다.
그리고 논리 연산자, 관계연산자, 삼항연산자도 있다.
const name = "crong";
const result = name || "codesquad";
console.log(result);
// name과 result를 const로 선언했기 때문에 재정의가 되지 않는다.
var name = "";
var result = name || "codesquad";
console.log(result);
연산자 - 삼항연산자
간단한 비교와 값 할당은 삼항연산자를 사용할 수 있다.
const data = 11;
const result = (data>10)?"ok":"fail";
console.log(result); // "ok"
연산자 - 비교연산자
비교는 ==보다는 ===를 사용한다.
==로 인한 다양한 오류 상황을 아래 예제를 통해 확인 가능하다.
0 == false; // true
"" == false; // true
null == false; // false
0 == "0"; // true
null == undefined; // true
자바스크립트는 ==인 경우 최대한 타입을 임의적으로 변경해서 비교하는 성질이 있다.
대상의 타입까지 비교를 하고자 한다면 ===를 사용. 습관적으로 ===를 사용하는 것이 좋다.
자바스크립트의 Type
자바스크립트 타입에는 다양한 것이 존재
undefined, null, boolean, number, string, object, function, array, Date, RegExp
타입은 선언할 때가 아니고, 실행타임에 결정된다. (타입이 없는 언어라는 말은 잘못된 말)
함수안에서의 파라미터나 변수는 실행될 때 그 타입이 결정된다.
타입을 체크하는 또렷한 방법은 없다.
정확하게는 toString.call 함수를 이용해서 그 결과를 매칭하곤 하는데, 문자, 숫자와 같은 자바스크립트 기본 타입은 'typeof' 키워드를 사용해서 체크할 수 있다.
배열은 타입을 체크하는 isArray함수가 표준으로 생겼다.
IE와 같은 구 브라우저를 사용해야 한다면 지원범위를 살펴보고 사용해야 한다.
[부스트코스 관련 강의 링크]
자바스크립트-변수-연산자-타입 - https://www.edwith.org/boostcourse-web/lecture/16693/
'Tech > BoostCourse - WEB' 카테고리의 다른 글
[부스트코스] 자바스크립트 함수 (0) | 2020.02.18 |
---|---|
[부스트코스] 자바스크립트 비교-반복-문자열 (0) | 2020.02.18 |
[부스트코스] Request, Response 객체 이해하기 (0) | 2020.02.14 |
[부스트코스] Servlet 라이프 싸이클 (0) | 2020.02.13 |
[부스트코스] Servlet 작성 방법 (0) | 2020.02.13 |