타입 변환
- 자바스크립트의 변수는 타입이 정해져 있지 않아 같은 변수에 다른 타입을 다시 대입할 수도 있다.
묵시적 타입변환
- 자바스크립트는 특정 타입의 값을 기대하는 곳에 다른 타입의 값이 오면, 자동으로 타입을 변환하여 사용한다.
- 즉 문자열 값이 오길 기대하는 곳에 숫자가 오더라도 자바스크립트는 알아서 숫자를 문자열로 변환하여 사용한다.
- 예시
10 + "문자열" // 문자열연결을 위해 10이 문자열로 변환된
"3" * "5" // 곱셈 연산을 위해 두 문자열이 모두 숫자로 변환됨
1 - "문자열" //NaN 이 예제는 뺼셈 연산을 위해 문자열이 숫자로 변환되어야 하나,
해당 문자열은 두 번째 예제의 문자열과는 달리 숫자로 변환될 수 없는 문자열
따라서 NaN으로 반환된다.
- NaN이란 Not a Number의 축약형, 정의되지 않은 값이나 표현할 수 없는 값이라는 의미
명시적 타입 변환
- 묵시적 타입 변환을 많이 사용하지만 명시적으로도 타입을 변환할 방법도 제공한다.
- 해당 전역함수는 아래와 같다.
- Number()
- String()
- Boolean()
- Object()
- parseInt()
- parseFloat()
- 아래 내용 중 일부 불필요하다 생각되어 생략했습니다.
변수
변수의 선언과 초기화
- 자바스크립트는 var 이라는 키워드를 이용하여 선언한다.
- 선언되지 않은 변수를 사용하려고 하거나 접근하면 오류가 발생한다.
- 단 선언되지 않은 변수를 초기화할 경우만 자동으로 선언을 한 후 초기화 한다.
var month; //month라는 이름 변수 선언
date = 20; // date라는 이름의 변수를 묵시적으로 선언
//둘다 사용하는데 이상 없습니다.
var month; //변수 선언
var date = 20; // 선언과 동시에 초기화
month = 10; //변수의 초기화
변수의 타입과 초깃값
- 자바스크립트 변수는 타입이 정해져 있지 않으며, 같은 변수에 다른 타입의 값을 다시 대입할 수 있다.
var num = 10; //변수 선언 초기화
num = [10, 20, 30]; //배열 대입
var num; //초기화 후 재선언은 무시됨
- 선언만 하고 초기화하지 않은 변수는 undefined 값을 갖는다.
변수의 이름
- 변수는 이름을 가지고 식별하므로 변수의 이름은 식별자가 된다.
- 변수의 이름은 영문(대소문자), 숫자, 언더스코어(_), $로만 구성된다.
- 숫자로 시작할 수 없다.
연산자
- 다 아는 내용일 수 있으니 빠르게 정리하고 넘어가겠습니다.
+
- 왼쪽 피연산자의 값을 오른쪽 피연산자 값과 더함
a = 1
b = 1
a+b = 2
-a = 2
b = 1
a - b = 1
*
- 왼쪽 피연산자 값에 오른쪽 피연산자의 값을 곱합
/
- 왼쪽 피연산자 값을 오른쪽 피연산자 값으로 나눈 몫을 반환
%
- 왼쪽 피연산자 값을 오른쪽 피연산자 값으로 나눈 나머지를 반환
연산자의 우선순위
- 각종 (), {} ,[]은 제외한 5개중
*, /, % 은 동일한 위치며 나머지 - ,+ 보다 우선순위가 있다.
- 이하 내용은 생략합니다.
대입 연산자
- 대입 연산자는 변수에 값을 대입할 때 이항 연산자이며, 피연산자들의 결합 방향은 오른쪽에서 왼쪽이다.
- 앞서 살펴본 산술 연산자와 결합한 복합 대입 연산자가 존재한다.
=
+=
- 왼쪽 피연산자의 값에 오른쪽 피연산자의 값을 더한 후, 그 결과 값을 왼쪽 피연산자에 대입함
-=
- 왼쪽 피연산자의 값에 오른쪽 피연산자의 값을 뺀 후, 그 결과값을 왼쪽 피연산자에 대입
*=
- 왼쪽 피연산자의 값에 오른쪽 피연산자의 값을 곱한 후, 그 결괏값을 왼쪽 피연산자에 대입
/=
- 왼쪽 피연산자의 값에 오른쪽 피연산자의 값을 나눈 몫을, 그 결괏값을 왼쪽 피연산자에 대입
%=
- 왼쪽 피연산자의 값에 오른쪽 피연산자의 값을 나눈 나머지를, 그 결괏값을 왼쪽 피연산자에 대입
증감 연산자
- 증감 연산자는 피 연산자를 1씩 증가 혹은 감소시킬때 사용
- 이 연산자는 피연산자가 단 하나뿐인 단항연산자이다.
++x
- 피연산자의 값을 1 증가시킨 후 해당 연산을 진행
x++
- 연산을 수행하고 나서, 피연산자의 값을 1 증가시킴
--x
- 피연산자를 1 감소 시킨 후 해당 연산을 진행
x--
- 연산을 수행하고 나서, 피연산자의 값을 1 감소시킴
비교 연산자
- 비교 연산자는 피연산자 사이의 상대적인 크기를 판단하여 참(true), 거짓(false)를 반환한다.
- 비교 연산자는 두개의 피연산자를 가지는 이항연산자이며, 피연산자들의 결합 방향은 왼쪽에서 오른쪽.
==
- 왼쪽 피연산자와 오른쪽 피연산자의 값이 같으면 참 반환
===
- 왼쪽 피연산자와 오른쪽 피연산자의 값이 같고, 같은 타입이면 참 반환
!=
- 왼쪽 피연산자와 오른쪽 피연산자의 값이 같지 않으면 참 반환
!==
- 왼쪽 피연산자와 오른쪽 피연산자의 값이 같지 않고, 타입이 다르면 참 반환
>
- 왼쪽 피연산자가 오른쪽 피연산자의 값보다 크면 참 반환
>=
- 왼쪽 피연산자가 오른쪽 피연산자의 값보다 크거나 같으면 참 반환
<
- 왼쪽 피연산자와 오른쪽 피연산자의 값보다 작으면 참 반환
<=
- 왼쪽 피연산자와 오른쪽 피연산자의 값보다 작거나 같으면 참 반환
논리 연산자
- 주어진 논리식을 판단하여 참, 거짓을 반환
&&연산자와 ||연산자는 두개의 피연산자를 가지는 이항 연산자이며, 피연산자들의 결합 방향은 왼쪽에서 오른쪽
!연산자는 피연산자가 단 하나뿐인 단항 연산자이며, 피연산자의 결합 방향은 오른쪽에서 왼쪽이다.
&&
- 논리식이 모두 참이면 참을 반환
- 비교군 두개가 둘중 하나가 true이거나 둘다 false일 떄 false이다
||
- 논리식중 둘중 하나가 참이면 참을 반환
- 비교군중 두개 다 false여야 false
!
- 논리식의 결과가 참이면 거짓, 거짓이면 참 반환
비트연산자
- 는 크게 필요한 내용이 아니라는 판단으로 생략하겠습니다.
삼항 연산자
- (표현식) ? x : y
- 표현식이 참일 경우 x, 거짓일 경우 y
- 뒤에서 설명한 if문을 축약시켜 간결하게 해준다.(간단하거나, 특별한 경우에만 사용)
typeof 연산자
- typeof 변수명
- 해당 변수명이 어떤 형인지 알려주는 연산자이다.(이하생략)
instanceof 연산자
- 변수명 instanceof 객체명
- 해당 변수명이 객체의 형을 가지고있는지 판별하는 연산자(true, false 반환)
- 두개의 피연산자를 가지는 이항 연산자이며, 피연산자들의 결합 방향은 왼쪽의 오른쪽이다.
조건문
제어문
- 프로그램의 순차적인 흐름을 제어해야 할 때 사용하는 실행문을 제어문이라고 한다.
- 이러한 제어문은 조건문 반복문 등이 포함된다.
조건문
- 조건문이란 프로그램 내에서 주어진 표현식의 결과에 따라 별도의 명령을 수행하도록 제어하는 실행문이다.
- 가장 기본이 되는 if문이다.
- 자바 스크립트에서 사용할 수 있는 조건문의 형태는 아래와 같다.
- if문
- if/else문
- if/else if/else 문
- switch문
if문
- if문은 표현식의 결과가 true면 주어진 실행문을 실행, 거짓 false 이면 아무것도 실행하지 않는다.
if(표현식){
표현식의 결과가 참일경우에만 실행됨
}
var x = 10, y = 20;
if (x == y) {
console.log("x와 y는 같습니다.");
}
if (x < y) {
console.log("x가 y보다 작습니다.");
}
- 실행문이 한줄 뿐이라면 중괄호를 생략할 수 있다.
if (x > y) // 실행될 실행문이 한 줄뿐이라면 중괄호({})를 생략할 수 있음.
document.write("x가 y보다 큽니다.");
else문
- if문의 표현식의 결과가 참이 아닐 경우 else문 내 실행문을 수행함
if (표현식) {
표현식의 결과가 참일 때 실행하고자 하는 실행문;
} else {
표현식의 결과가 거짓일 때 실행하고자 하는 실행문;
}
else if문
- 주어진 조건식을 수행하려고 할 때 표현식이 if/else만으로는 부족하거나 추가를 해야하는 경우 else if를 사용
- 갯수의 제한은 없다.
if (표현식1) {
표현식1의 결과가 참일 때 실행하고자 하는 실행문;
} else if (표현식2) {
표현식2의 결과가 참일 때 실행하고자 하는 실행문;
} else {
표현식1의 결과도 거짓이고, 표현식2의 결과도 거짓일 때 실행하고자 하는 실행문;
}
삼항 연산자
switch
- if/else문과 마찬가지로 주어진 조건 값에 따라 프로그램이 다른 명령을 수행하도록 하는 조건문
- 주로 정해진 값을 구분해야 할 때 switch문을 사용한다.
switch (조건 값) {
case 값1:
조건 값이 값1일 때 실행하고자 하는 실행문;
break;
case 값2:
조건 값이 값2일 때 실행하고자 하는 실행문;
break;//멈춤으로 switch문을 빠져나간다. 없을 시 해당 값에서 멈추지 않고 다음 값으로 넘어간다.
...
default:
조건 값이 어떠한 case 절에도 해당하지 않을 때 실행하고자 하는 실행문;
break;
}