표준화된 자바스크립트 !
typeof 를 통해서 데이터 타입을 확인할 수 있다.
*****typeof*****
console.log(typeof 123); // number
console.log(typeof null); // object
console.log(typeof []); // object
console.log(typeof {}); // object
하지만 이처럼 null, 배열, 객체 모두 object 로 반환하여 정확한 타입을 확인하기 어렵습니다.
그러면 데이터 타입을 확인할 수 있는 함수를 만들어 사용해봅시다.
function getType(data) {
return Object.prototype.toString.call(data);
}
console.log(getType(123)); //[object Number]
console.log(getType(true)); //[object Boolean]
console.log(getType(null)); //[object Null]
console.log(getType([])); //[object Array]
console.log(getType({})); //[object Object]
데이터 타입을 정확히 확인 가능합니다.
✔️ 산술 연산자 : +(더하기), -(빼기), *(곱하기), /(나누기), %(나머지)
✔️ 할당 연산자 (=)
let a = 2
// a= a+1
a += 1 (산술 연산자 모두 사용 가능)
✔️ 비교 연산자 : ===(일치), !==(불일치), <, <=, >,>=
== 와 === 차이
‘===’는 변수 값, 유형 모두 비교
‘==’는 변수 값을 기반으로 유형을 수정한다.
✔️논리 연산자
const a = 1===1 // true
const b = "AB"==="AB"
const c = false
&& 연산자 => and 연산자 : 모두 ture 여야 ture 반환
console.log(a && b && c) // false
|| 연산자 => or 연산자 : 조건 중에 하나라도 true면 true 반환
console.log(a || b || c) // true
! 연산자 => 부정연산자 : 특정한 값의 반대 값을 반환
console.log( !a )
✔️삼항 연산자
? 연산자 : 조건 (실행명령 각각 1개뿐일 때)
(userNumber % 3 === 0)?alert("3의 배수입니다."):alert("3의 배수가 아닙니다.");
✔️ If Else문
if (조건1) {
조건1이 true 일 때만 실행할 명령
} if else (조건2) {
조건 1이 false, 조건 2가 true 일 때
} else {
false 일 때 실행할 명령
}
ex
const a = random();
if (a === 0) {
console.log("a is 0");
} else if (a === 2) {
console.log("a is 2");
} else {
console.log("rest...");
}
✔️ switch문 if 문으로 처리할 조건이 많을 때 사용하면 좋다.
**switch** ( 대상 ) {
**case** 조건1 :
조건1일 때
***break; <---- break를 쓰지 않으면 다음 case문도 실행한다.***
**case** 조건2:
조건2일때
**case** 조건3;
조건2일때, 조건3일때
**break**;
**default:**
모든 case와 충족하지 않을 때
ex
switch (session) {
case "1":
document.write(
"<p>마케팅 세션은 <strong>201호</strong> 에서 진행됩니다.</p>"
);
break;
case "2":
document.write(
"<p>개발세션은 <strong>203호</strong> 에서 진행됩니다.</p>"
);
break;
case "3":
document.write(
"<p>디자인 세션은 <strong>205호</strong> 에서 진행됩니다.</p>"
);
break;
default:
alert("잘못 입력했습니다.");
}
✔️ for문
처음 시작 값 설정해 ;어떤 조건을 걸고 반복할건가? ; 어떤 증가성 규칙으로?
for (초기 값 ; 종료 조건 ; 증가 식) {
실행할 코드
}
ex.
for (let i = 0; i<3; i++){
console.log(i)
}
변수가 유효하게 동작할 수 있는 범위
function scope(){
if(true){
const a = 123 // 이 {} 범위 안에서만 동작
}
console.log(a) // 유효범위 벗어남 => 동작x
}
function scope(){
console.log(a) // 선언보다 먼저 실행함 => 동작, 출력 x
if(true){
const a = 123
}
}
function scope(){
if(true){
var a = 123
}
console.log(a) // 출력됨
}
function scope(){
console.log(a) // undefined 로 출력됨
if(true){
var a = 123
}
}
const a = 1 // 숫자
const b = ‘1’ // 문자
// 동등 연산자 ==
console,log(a == b) // ture
숫자와 문자는 타입이 달라서 false 로 나와야하지만, 형 변환이 일어나면서 true 반환
따라서 일치연산자(===)를 사용하도록 해야한다.
const c = + b // 숫자 1
=> 문자열에 + 붙이면 숫자로 형변환이 일어남
const d = a + '민지' // '1민지'
=> 숫자에 문자열(빈 문자열도 가능)을 더하면 문자열로 형변환이 일어남
true
, { }
, [ ]
, 1
, 2
, ‘false’(문자)
, -12(음수)
, ‘3.14’
...false
, ‘빈문자열’
, null
, undefined
, 0
, -0
, NaN(not a number)