Number : 숫자를 나타내는 자료형, 정수나 실수 구분없이 모두 Number로 인식
var a=100; undefined a 100 var b=3.14; undefined b 3.14 var c=1e-3; undefined c 0.001
하지만 아래의 코드처럼 작성하면 변수인 "height"의 타입은 숫자가 아닌 문자로 반환된다.
var height=prompt("키를 입력해 주세요."); console.log(height, typeof(height));
그 이유는 바로 입력을 문자 형식으로 입력했기 때문이다.
그렇다면 어떻게 String 형식으로 적힌 숫자를 Number 형식으로 바꿀까 ?
바로 아래의 코드들을 이용하면 된다.
parseInt() : 문자열의 정수 부분만 인식해서 정수 변수로 출력함
parseFloat() : 문자열의 소수 부분까지 인식해서 소수 변수로 출력함
1. var height_int = parseInt(height); console.log(height_int, typeof(height_int));
2. var height_float = parseFloat(height); console.log(height_float, typeof(height_float));
이렇게 변경한다면 String 형식으로 적힌 숫자는 Number 형식으로 바뀌게 된다.
만약 prompt 입력에 154.8 이라고 적는다면, 아래와 같이 출력이 된다.
위의 코드는 오류와 관련된 코드이다.
NaN이라는 오류가 발생한 이유는 prompt에 입력된 값이 숫자가 아닌 문자로 시작했기 때문이다.
Infinity라는 오류가 발생한 이유는 1은 0으로 나눌 수 없다는 수학적 오류가 발생했기 때문이다.
NaN : "Not a Number"라는 오류
Infinity : 수학적 오류가 발생했을 경우 나타나는 오류 문자
이를 응용한 실습 문제들을 풀면서 자료형의 Number 파트는 마무리하였다.
String : 문자를 나타내는 자료형
SyntaxError : 잘못된 문법일 경우 발생하는 에러
보통 문법 에러는 ""(쌍따옴표) 나 ''(작은따옴표) 로 인해서 발생한다.
그 이유는 아래와 같이 쌍따옴표와 작은따옴표를 같이 사용하기 때문이다.
var a="이것은 잘못되었습니다.'
그렇다면 쌍따옴표와 작은따옴표를 같이 사용하고 싶은 경우엔 어떻게 해야될까?
바로 Escape Character, 즉 역슬래시(\) 을 사용한다.
역슬래시 문자를 사용하고 싶은 경우에는 어떻게 할까?
바로 역슬래시 문자를 두 번 사용하면 된다.
✨중요한 것들 !!!
쌍따옴표와 작은따옴표를 같이 사용하고 싶은 경우 : \ 사용
역슬래시 문자 사용 : \\ (역슬래시 두 번 사용)
줄바꾸기 : \n (New Line Character)
Number 때와 마찬가지로 이를 응용한 실습을 하면서 String 파트는 마무리하였다.
Object : 객체, 속성 (Property)의 집합
속성 정의하기 : {name1 : value1, name2 : value2, ...}
객체 속성의 값은 모든 자료형이 될 수 있다. (Number, String, Boolean 등)
모든 Object도 객체 속성의 값으로 가능하다.
var man = {name:"홍길동", age:20, height:180};
😂🤣 처음에 위의 코드를 작성하면서 변수를 선언하는 것처럼 자연스럽게 age=20이라고 적어서 오류가 났었다. (조심 또 조심하기 !!!)
객체 속성에 접근하는 방법
1. 객체이름.속성이름
2. 객체이름["속성이름"]
객체의 속성 값은 변경할 때에는 변수를 선언할 때와 마찬가지로 변수를 초기화해주면 된다.
Object는 실습이 가장 중요한 것 같다. 실습을 반복적으로 하면서 코드를 손에 익혀보자 !
undefined : 값이 없음, 시스템에서 변수나 속성이 정의되지 않은 경우에 사용
null : 값이 없음, 개발자가 의도적으로 비어있는 값을 표현하기 위해 사용
var uninitialized_var;
var obj={x:1, y:2};
null이라는 비어있는 객체가 들어있음을 표시하기 때문에 object라고 나옴
(개발자가 명시적으로 비어있다고 표시함)
var null_var; null_var=null;
오늘의 마지막 실습을 진행하였다. 이번에도 실습을 하면서 코드 실행이 되지 않아서 당황했다.
(그냥 var a;만 해도 undefined가 출력될텐데 var a=undefined라고 작성해야지만 코드가 실행되다니!!!)
암튼 프론트엔드 JS 챌린지 2일차는 이렇게 마무리했다.