데이터 타입.

  • Number

숫자를 표현하거나 산술연산을 하는데 사용되는 타입. 64비트

parseInt(), parseFloast() - Number 파싱

NaN(Not a Number) - Number 파싱 시 숫자가 아닐때

isNaN() - 숫자가 아닐 때 true, 숫자일때 false

Infinity - 무한대

isFinite() - 유한 숫자 이면 true, 아니면 false

<br>

  • String

문자열 (16비트 문자들의 연결)

length - 문자열 길이

charAt() - EX. "hello world".chatAt(0) >> h

replace() - EX. "hello world".replace("hello", "bye"); >> bye world

toUpperCase() - EX. "hello world".toUpperCase() - HELLO WORLD

split() - EX. "1+2+3+4+5".split("+") >>> ['1','2','3','4','5']

<br>
<br>

  • Null, undefined

Null과 Undefined 차이
Null은 개발자가 의도적으로 비어있는 값을 주입 한 것.

Undefined 애초에 값이 정해지지 않은 것.

<br>

  • Object
  • Array
  • Function
  • Date
  • RegExp
  • Boolean

<br>
<br>

함수선언 vs 함수표현

  • 함수 선언 ( Function Declarations)
//Function Declarations
function foo() {
    console.log('hello');
}

단순히 함수를 선언한 것으로, 실행가능 코드가 아니라는것, Just Code.

<br>

  • 함수 표현 ( Function Expression)
//anonymous function expression
var foo = function() {
    console.log('hello');
};

//named function expression
var foo = function foo() {
    console.log('hello');
};

// 자기호출함수, self invoking function expression
(function foo() {
    console.log('hello');
})();

함수표현은 특정변수에 할당되거나, 즉시 실행가능한 코드 블럭, 존재하는 함수

자기호출함수 - 해석과 동시에 실행되는 코드 블록

<br>

Hoisting?

Hoisting은 '끌어올리기'를 말합니다.

**var의 경우, **정의된 var 변수의 선언문을 유효 범위의 최상단으로 끌어올리는 것을 말합니다.

**함수의 경우, **함수선언을 먼저 수집하여 최상위 SCOPE로 끌어올리는 것을 말합니다.

즉 함수 선언은 자바스크립트 엔진 구동 시 가장 최우선되어 해석됩니다.

중요한 부분은 함수선언은 Hoisting 되고, 함수표현은 Hoisting 되지 않습니다.

<br>
<br>
<br>

Object

자바스크립트 자체가 객체기반으로 돌아가는 스크립트 언어

<br>

프로퍼티

  • 객체가 가지는 값
  • 프로퍼티는 값이 존재하지 않으면, 존재할 필요가 없음.
  • 그렇기 때문에 프로퍼티를 추가하면서 값을 할당하지 않으면 Syntax Error 발생
  • 또한 삭제시 undefined, null 아닌 delete 키워드를 사용해야함.

<br>

메소드

  • 객체가 가지고 있는 동작, 객체를 움직이는 동작.

  • 객체를 통해서 메소드를 수행해야한다.

  • 즉 동작을 수행하는 주체이며, 객체에게 그 동작을 수행하라고 지시함으로서 사용.

  • 메소드를 정의하는 것은, 객체로부터 파생된 또 하나의 객체를 정의하는 것.

  • 자바스크립트의 객체(Object) 구성

    Built-in Object (자바스크립트 내장 객체) : 자바스크립트 엔진이 구동되는 시점에서 바로 제공, Global, Object, String, Number, Boolean, Data, Array, Math... 등
    Native Object (브라우져 내장 객체) : 자바스크립트 엔진을 구동하는 것들에서 빌드 되는 객체, window, document... 등
    Host Object (사용자 정의 객체) : 뜻 그대로 사용자가 생성한 객체.

<br>
<br>

  • Object 생성 방법
// Constructor Type, 여러개 생성 가능.
var foo = new Object(); 
foo.name='foo';
console.log(foo.name);
> foo

/* JSON 방식을 사용하여 객체 리터럴 - 단일객체 */
var foo = {
    name : 'foo'
};
console.log(foo.name);
> foo

<br>
<br>

Object 객체

자바스크립트의 객체는 곧 배열이다.

Object 객체는 Built in Object(자바스크립트 내부 객체) 로 모든 객체의 최상위 객체.

Object 객체는 암묵적으로 Array 객체를 상속함. 모든 객체는 Object 객체에서 파생되어 나오는 확장형태.

따라서 모든 객체는 곧 배열이다.

<br>

메소드를 소유한 parent 객체는 객체에 포함된 메소드들의 참조값만을 가지고 있다. 즉 메소드들 자체도 각각 개별 객체로서 존재한다. 이 내용은 prototype을 다루면서 더 자세히 설명하겠다. 또한가지 방법은 Object Notation 이다. JSON의 key, value 방식의 객체 리터럴 구조는 프로그래밍 언어를 공부한 사람은 누구나 아는 배열 구조와 동일하다. 특히 php 와 같은 스크립트 언어의 배열을 봐왔던 사람들은 더더욱 그럴것이다. 즉 JSON의 표현방식은 [] 라는 Array 표현의 다른 방식일 뿐이다. 실제로 객체의 프로퍼티 생성이나 참조에서 . 연산자가 아닌 []를 사용 할수도 있다.**

<br>
<br>

참고

<a href="http://insanehong.kr/category/javascript/">http://insanehong.kr/category/javascript/</a>

<br>
<br>
<br>
<br>

0
이전 댓글 보기
등록
TOP