웹페이지를 동적으로 프로그래밍적으로 제어하기 위해 고안된 언어로 html이 한번 화면에 출력된 후에는 그 형태나 동작법을 바꿀 수 없는 문제를 해결하기 위해 만들어졌다. 현재에는 웹브라우저를 벗어나 다양한 용도로 사용되어지고 있다.
웹페이지 스크립팅_DOM, 서버측 스크립팅_node.js, 브라우저 확장기능, Adobe PDF, Adobe creative suite 툴, unity 게임엔진, google apps script, OpenOffice, 채팅시스템
크게 기본형과 참조형으로 나뉜다.
▶︎ 기본형
: 숫자, 문자, 불리언, null, undefined, ES6에서 추가된 심볼 등이 해당
: 값이 담긴 주솟값을 바로 복제
▶︎ 참조형
: 객체가 있고 하위 분류로 배열, 함수, 날짜, 정규 표현식, ES6에서 추가된 map, weak map, set, weakset등이 해당
: 값이 담긴 주솟값들로 이루어진 묶음을 가리키는 주솟값을 복제
▶︎ 변수 : 변할 수 있는 데이터, 변경가능한 데이터가 담길 수 있는 공간 또는 그릇
변수는 var/ let / const 를 사용해 선언할 수 있으며 변수의 이름의 경우 [$, _ , 특수문자, 예약어]를 제외한 모든 문자로 시작할 수 있다.
또한 메모리를 효율적으로 사용, 관리 하기 위해 변수 저장시 변수 영역과 데이터 영역을 나누어 저장한다.
변수와 상수의 차이는 변수 영역 메모리에 다라 다르다.
한번 데이터 할당이 이뤄진 변수 공간에서 재할당 할 수 있는지 여부에 따라 변수와 상수가 구분되며 불변성 여부의 구분은 데이터 영역의 변경 가능성에 따라 구분된다.
자바스크립트에서 [없음]을 나타내는 값
▶︎ undefined : 변수는 선언했지만, 값을 할당하지 않았을때 해당 변수에 할당되는 값을 나타낸다.
즉, [값이 할당되지 않았음]을 알린다.
let a; 선언 후 alert를 사용해 a를 출력하면 undefined가 출력된다.
let a;
alert(a) // undefined 출력
(직접 선언도 가능하나, 직접 선언할 경우 null을 사용하는 것을 추천)
▶︎ null :
다른언어에서의 null은 [존재하지 않는 객체에 대한 참조]를 나타내지만
자바스크립트에선 [존재하지 않는(nothing) 값, 비어 있는(empty) 값, 알 수 없는(unknown) 값]을 나타낸다.
let b = null;이라면 b를 알 수 없거나 그 값이 비어있음을 보여준다.
let b=null;
alert(b) // null
구성예시 : 5(피연산자) +(연산자) 2(피연산자)
피연산자를 하나만 받는 연산자를 단항연산자라고 한다. (예시 x=-x에서 -)
두개의 피연산자를 받는 연산자를 이항연산자라고 한다.
▶︎ 기본 연산자 + — * / %(나머지) (거듭제곱)
+연산자를 문자 앞에 붙일 경우 숫자형으로 변환이 일어난다.
▶︎ 할당연산자= / 증가++ 감소 — 연산자
(단, 증가 감소 연산자의 경우 변수에만 사용가능)
▶︎ 비트연산자(이진연산 수행)
&, |, ^, ~, <<, >>, >>>
(AND, OR, XOR, NOT, LEFTSHIFT, RIGHTSHIFT, ZERO-FILL RIGHT SHIFT)
▶︎ 비교/일치 연산자
null==0, null > 0의 경우 false, null >= 0의 경우 true를 반환 / 이유는 null이 숫자형으로 변환돼 0이 되기 때문)
(단, undefined의 경우 비교가 불가능하기 때문에 모두 false)
▶︎ 조건 if /else
▶︎ switch
switch(x){
case 1:
~
[break]
case 2:
~
[break]
…
}
변수 x의 값과 첫 번째 case문의 값 1과 일치 비교한 후, 두 번째 case문의 값 2와 비교
case문에서 변수 x의 값과 일치하는 값을 찾으면 해당 case 문의 아래의 코드가 실행되며, break문을 만나거나 switch 문이 끝나면 코드의 실행은 멈추게 된다.
▶︎ while
while (조건) {
// 코드
// '반복문 본문(body)'이라 불림
}
조건이 맞을 경우 반복문 내의 코드 실행.
▶︎ for
while과 비슷한 구조이나 조금 더 복잡하고, 많이 사용되는 반복문
for(어디부터;얼마나;어떻게) 와 같은 방식으로 많이 사용되는 반복문