- 자바스크립트는 1995년 넷스케이프(Netscape)의 브렌던 아이크(Brendan Eich)에 의해 만들어졌다.
- 스크립트 언어(Script Language), 인터프리터 언어, 웹 페이지의 스크립트 언어 - 웹 페이지의 스크립트 언어 이외에도 Node.js와 같이 비 브라우저 환경, 서버언어 등으로도 사용된다. - 객체지향형, 명령형, 선언형(함수형 프로그래밍 등) 스타일을 지원한다. - 매우 가볍다.
2) JavaScript의 표준 - ECMAScript - 2012년 이전 브라우저는 ECMAScript 3까지는 지원 - 2012년 기준 브라우저는 모두 ECMAScript 5.1까지 지원 - 2015년 6월 17일 ECMAScript6(ES6, ECMAScript 2015라고도 불림) 발표 그 이후 ECMAScript 표준의 출시 주기는 1년이다.
3) Javscript 주석
- 주석은 공백처럼 행동하며 스크립트 실행 시 버려진다.
- 한줄 주석(//)과 여러줄 주석(/* xxxx */)을 사용할 수 있다.
// 한 줄 주석/* 여러줄
* 주석도 가능
*/
4) Javscript 선언
- 3가지 선언 방법이 있다.
- var : 변수 선언. 선언과 동시에 값을 할당할 수도 있다.
- let : 지역 변수 선언. 선언과 동시에 값을 할당할 수도 있다.
- const : 상수 선언.
5) Javascript 변수
① 변수명(identifier, 식별자) 규칙
- 다음 언어로 시작해야 한다
문자, 밑줄(_), 달러($)
- 이후 숫자도 포함 가능 하다.
ex)
_id, $money, goddahee 등등
② 전역변수
- global 객체(window)의 속성 (property)
- window.variable 구문을 통해 전역변수를 설정하고 접근 가능하다.
※ 지금은 당연히 헷갈릴 일은 없지만, JavaScript를 Java를 비슷한 이름이어서 헷갈리곤 했다. 결론적으로 "Java"와 "JavaScript"는 전혀다른 언어 이기때문에 헷갈리지 않아야 된다.
※ 자바스크립트의 데이터 타입은 크게 두가지 타입으로 나누어 진다.
1) 기본 타입
- 원시 테이터라고도 한다. (primitive value)
2) 참조 타입
※ 자바스크립트 데이터 타입 관련 특징
- 자바스크립트는 느슨한 타입 체크 언어 이다. - Java와 같은 경우는 데이터의 종류(정수, 실수 등)에 따라 int, float 등의 예약어를 이용하여 데이터 타입을 지정 해야한다. - 하지만, Javascript는 변수에 타입을 미리 정하지 않고, "var" 라는 키워드로 변수 선언을 한다.
이 변수에 어떤 형태의 데이터를 저장하느냐에 따라 해당 변수의 타입이 결정 된다. (typescript 등은 오히려 type을 선언하기도 하지만, 이번 포스팅에선 그냥 javascript 기본을 다루니 패스 하도록 한다.)
var name="GodDaeHee", drink="coke";
var comment=`My name is ${name}, I like drink ${drink}.`;
console.log(comment); // My name is GodDaeHee, I like drink coke.
- 문자열에서 사용할 수 있는 특수 문자 (유니코드 표현식 등은 일단 제외, 자주 사용되는 특수 문자)
문자
뜻
\0
Null Byte
\b
BackSpace
\f
Form feed
\n
New line
\r
Carriage return
\t
Tab
\v
Vertival tab
\'
작은 따옴표
\"
큰 따옴표
\\
백슬러시
▶ 3. 불린(Boolean)
- 'true', 'false'를 나타내는 불린 타입
var boolVar = true;
var boolTest = (1==1); // true;var boolTest2 = ("테스트" == 1); // false;console.log(typeof(boolTest)); // "boolean"
▶4. undefined
▶5. null
- null과 undefined는 둘다 값이 비어 있음을 뜻한다. - undefined vs null 다만 값을 할당 하지 않으면 undefined, 명시적으로 null을 선언하면 object인 점은 조심하자. 그렇기 때문에 null check는 === 를 사용하여 타입까지 확인 해야 한다.
- 프로퍼티 이름에 표현식 또는 예약어가 포함된 경우에는 대 괄호 표기법을 사용해야 한다.
testObj.test-obj = "test";
// Uncaught SyntaxError: Invalid left-hand side in assignment
testObj['test-obj'] = "test";
// 정상 호출
▶ 3. 프로퍼티 삭제
- 프로퍼티 접근 방식 앞에 delete를 붙여 삭제 처리 가능 하다.
delete testObj.age;
delete testObj['name'];
▶ 4. for in 을 통한 객체 프로퍼티 접근 및 출력
- for in 문을 사용하면, 객체의 모든 프로퍼티에 대하여 루프 수행이 가능 하다.
var testObj = {
name : 'GodDamn',
age : '30'
}
var props;
for (props in testObj) {
console.log("property : " + props + ", value : " + testObj[props]);
}