한번에 여러책을 볼려니깐 시간이 없다.
개발 환경이라는 목차를 보니깐 테스트와 디버깅에 대해서 알려주고
웹스톰이라는 소프트웨어를 추천하는데 나는 이미 사용하고있는게 있어서 설치는 안하기로 했다.
개발 환경 목차는 넘어가고 데이터 타입과 연산자를 진행해 보도록 한다.
언어의 기본은 데이터 타입이고
자바스크립트의 데이터 타입의 값은 크게 2가지가 있는데
기본 타입과 참조 타입이다.(책에는 그림으로 설명 되어있어서 이해하기 편하다.)
기본 타입 { 숫자, 문자열, 불린값, undefined, null }
참조 타입 { 객체(배열,함수,정규표현식) }
대충 이런 느낌으로 그림이 있는데 참조 타입은 객체안에 배열과 함수, 정규표현식이 포함되어있다.
1)기본 타입
기본 타입의 특징은 그 자체가 하나의 값을 나타낸다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | //숫자 타입 (1) var intNum = 10; var floatNum = 0.1; //문자열 타입 (2) var singleQuotestr = 'single quote string'; var dobulQuotestr = "double quote string"; var singlechar = 'a'; //불린 타입 (3) var boolVar = true; //undefined 타입 (4) var emptyVar; // null 타입 (5) var nullVar = null; console.log( typeof intNum, typeof floatNum, typeof singleQuoteStr, typeof dobuleQuoteStr, typeof boolVar, typeof nullVar, typeof emptyVar ); //출력값 - number number string string boolean object undefied | cs |
예제를 보면 기본타입을 변수로 저장하고 typeof 연산자를 이용해서 출력해보았다.
typeof 연산자는 피연산자의 타입을 리턴한다.
(피연산자 - 어떠한 연산을 할 때 연산의 대상이 되는 데이터)
자바스크립트는 느슨한 타입 체크 언어다.
변수를 선언할 때 타입을 미리 정하지 않고 var라는 한 가지 키워드로만 변수를 선언한다.
이렇게 저장된 변수에는 어떤 타입의 데이터라도 저장하는 것이 가능하며
변수에 어떠한 형태의 데이터를 저장하냐에 따라 타입을 결정한다.
C나 자바같은 엄격한 타입 체크 언어는 변수를 선언할 때 저장할 데이터에 종류(문자, 정수, 실수 등)에 따라서 char, int, float 등의 예약어를 이용한다.
1-1) 숫자
자바스크립트는 하나의 숫자형만 존재하고
C언어의 double 타입과 유사하다.(int, long, double 등이 있다.)
자바스크립트 변수에는 정수나 실수 구분 없이 그 값을 바로 저장할 수 있으므로 (1)의 typeof 연산자의 결과값이 number타입이다.
자바스크립트는 정수형이 따로 없고 모든 숫자를 실수로 처리하므로
나눗셈 연산을 할 때는 주의 해야된다.
1 2 3 4 | var num = 5 / 2; console.log(num); //출력값 2.5 console.log(math.floor(num)); //출력값 2 | cs |
만약 자바스크립트에서 정수 부분만을 구하고 싶다면 Math.floor() 메서드를 사용해야된다.
1-2)문자열
문자열은 작은 따옴표('),큰 따옴표(")로 생성한다.
따라서 (2)에서 singleQuotestr와 doubleQuotestr 변수의 typeof 연산자 결과가 string으로 나온다.
1 2 3 4 5 6 7 | //str 문자열 생성 var str = 'test' console.log(str[0], str[1], str[2], str[3]); //출력값 test //문자열의 첫 글자를 대문자로 변경? str[0] = 'T'; console.log(str) //출력값 test | cs |
주의 할 점은 한번 정의된 문자열은 변하지 않는다는 것이다.
str문자열 생성에서 문자열을 문자 배열 처럼 인덱스를 이용해서 test 값을 출력했다.
대문자 변경은 str[0]번 't' 를 'T'로 변경했지만(에러는 발생하지 않는다.) str을 출력했을때는
원래 문자열인 test 가 출력되었다.
즉 자바스크립트에서 한번 생성된 문자열은 읽기만 가능하고 수정은 불가능 하다.
1-3)불린값
불린 타입은 true 와 false 값을 나타낸다. (3)에서 boolVar변수에 'true' 값을 저장했으므로
boolVar 변수는 typeof에서 boolean 이 출력된다.
1-4) null과 undefined
이 두개를 한번에 하는 것은 두 타입은 자바스크립트에서 '값이 비어있음' 을 나타낸다.
자바스크립트 환경 내에서 기본적으로 값이 할당되지 않는 변수는 undefined 타입이고
undefined 타입의 변수는 변수 자체의 값 또한 undefined이다.
undefined는 타입이자, 값을 나타낸다.
(4)는 변수에 아무런 값을 할당하지 않아서 undefined값이 출력되고
(5)는 개발자가 명시적으로 값이 비어있음을 나타내기 위해 null 타입 변수를 사용한다.
여기서 주의 할 점은 null타입 변수인 nullVar의 typeof 결과가 null이 아니고 object인데
null 타입 변수를 확인할 떄는 typeof 연산자말고 일치 연산자(===)를 사용해서 확인하자
(일치 연산자는 타입까지 비교한다.)
1 2 3 4 5 | // null 타입 변수 생성 var nullVar = null; console.log(typeof nullVar === null); // 출력값 false console.log(nullVar === null); // 출력값 true |
참조 타입은 다음에...
인사이드 자바스크립트는 C,JAVA언어와 비교해주면서 다른점을 집어주면서
설명을 해줘서 자바스크립트 언어만 공부한다기보다 다른언어와의 차이점을
알 수 있어서 다른 기본 서적과 조금 다른거 같다. 물론 많은 책을 본거는 아니지만
인터넷에서 자바스크립트를 찾아가면서 배워도 좋지만 책을 보면서 모르는거를 찾아보는게
좀 더 효율적인거 같고 좋은 책을 고르면 인터넷에 자료보다도 질 좋은 내용을 확인 할 수 있다.