JavaScript 학습 - 1회차


JavaScript 공부에 대한 필요성을 느껴 JavaScript를 앞으로 공부해보고자 합니다.


그 과정에 대해서 개인적으로 정리하며 남기는 글입니다.


이 과정은 https://developer.mozilla.org/ko/docs/A_re-introduction_to_JavaScript 를 기반으로 진행하고 있습니다.

JavaScript Type(자료형)

우선 첫번째로 타입(자료형)입니다.


자바스크립트의 타입은 크게 기본 자료형 6가지에 Object까지 7가지라고 합니다.


기본 자료형은 


  • Boolean(부울) 
  • Null(널)
  • Undefined(정의되지 않음)
  • Number(수)
  • String(문자열)
  • Symbol(기호)
이며 추가로
  • Object(객체)
가 있습니다.


그리고 이 Object는 다음과 같이 구성됩니다.

  • Object(객체)
    • Function(함수)
    • Array(배열)
    • Date(날짜)
    • RegExp(정규식)

이제 이것들에 대해서 차근차근 알아보도록 하겠습니다.



Boolean 타입



자바스크립트 Boolean은 true 또는 false의 두 값 중 하나를 나타냅니다.


사용 방식은 다음과 같고


new Boolean([value])

1. false, 0, "", NaN, null과 undefined는 모두 false가 됩니다.


2. 다른 모든 값은 true가 됩니다.


즉, Boolean 객체의 true, false 값은 원래 Boolean값인 true, false와는 다르다는 것 입니다. 말이 좀 이상하지만, 예를 통해서 보시면 이해가 될 것입니다.


x = new Boolean(false);
if (x) {
  // . . . 이 코드는 true가 실행된다.
}
x = false;
if (x) {
  // . . . 하지만 이 코드는 실행되지 않는다.
}

즉, 변환되지 않은 Boolean값과는 다르다고 생각하시면 될 것 같습니다(맞나?)


또한, false 값을 가진 Boolean 객체를 포함한 어떠한 객체를  이용하여 Boolean 객체를 초기화해도 값은 true입니다.


myFalse = new Boolean(false);   // false 값으로 초기화
g = new Boolean(myFalse);       // true 값으로 초기화
myString = new String("Hello"); // string 객체
s = new Boolean(myString);      // true 값으로 초기화


Boolean에 대한 자세한 내용은 https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Boolean 을 참고하시기 바랍니다.




Null 타입



Null 타입은 null이라는 오직 한 가지 값만 가질 수 있습니다.


null은 전역 객체의 프로퍼티가 아닌 리터럴이며, null 또는 undefined를 체크할 때 균등(==)과 식별(===) 연산자를 이용할 때 주의가 필요합니다.


균등 연산자는 타입 변환을 하지만 식별 연산자는 타입 변환을 하지 않기 때문에 아래와 같은 결과가 나타납니다.



null과 undefined의 차이


typeof null        // object (ECMAScript 의 버그로, null이어야 함)
typeof undefined   // undefined
null === undefined // false
null  == undefined // true


추가적인 내용은 https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/null 를 참고하시기 바랍니다.




Undefined 타입



값을 할당하지 않은 변수는 undefined 값을 가지게 됩니다. 


이 타입은 상수이므로, 이것들로 다른 객체를 표현할 수는 없습니다.



추가적인 내용은 https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/undefined 를 참고하시기 바랍니다.




Number 타입



특이하게도 자바스크립트에서는 정수라는 것은 존재하지 않습니다. 자바스크립트에서 수는 '이중정밀도 64비트 형식 IEEE 754 값(!?)'입니다. 


그렇기 때문에 다음과 같이 산술할 때 조심해야 합니다.


0.1 + 0.2 = 0.30000000000000004 //정수가 아니니까...

Number 타입에는 덧셈, 뺄셈, 나머지 연산을 포함하는 표준 산술 연산자와 Math로 불리는 내장 객체가 있습니다.


또한, 내장 parseInt() 함수를 통해 문자열을 정수로 변환할 수 있습니다.


> parseInt("123", 10)
123
> parseInt("010", 10)
10

만일 이진수를 정수로 변환하는 경우에는 밑을 바꾸면 됩니다.


> parseInt("11", 2)
3

문자열이 수가 아닌 경우에는 NaN을 반환하며 1을 0으로 나누거나 하는 경우에는 Infinity 값을 반환하게 됩니다.


추가적인 내용은 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number 를 참고하시기 바랍니다.




String 타입



자바스크립트에서 String(문자열)은 문자 하나하나가 연결되어 만들어진 것입니다. 


한 개의 문자를 나타내기 위해서는 길이가 1인 문자열을 이용하면 됩니다.


문자열의 길이는 아래와 같이 해당 문자열의 length 속성에 대한 접근으로 얻을 수 있습니다.


> "hello".length
5

또한, 아래와 같이 사용될 수 있습니다.


> "hello".charAt(0)
h
> "hello, world".replace("hello", "goodbye")
goodbye, world
> "hello".toUpperCase()
HELLO


그리고 Escape Annotation 이라고 해서 자바스크립트에서는 다음과 같은 코드들은 특별하게 사용됩니다(아래 표에서 원 기호는 \ 입니다)



 Code

Output 

 \0

 NULL 문자

 \'

 단따옴표 '

 \"

 쌍따옴표 "

 \\

 백슬래시 \

 \n

 개행문자

 \r

 캐리지리턴

 \v

 Vertical Tab

 \t

 탭

 \b

 백스페이스

 \f

 폼 피드

 \uXXXX

 유니코드 코드포인트

 \u{X} ... \u{XXXXXX}

 유니코드 코드포인트

 \xXX

 라틴-1 문자


추가적인 내용은 https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/String 를 참고하시기 바랍니다.





























반응형