책을 다시 보면서 기본 지식을 다시 정리해보고 있다.
하다가 막히면 다시 원점에서 흘려버린 걸 다시 되짚어 가면서 시작하는 것이 도움이 될 수도 있기 때문이다.
모든 언어의 기본은 데이터 타입을 파악하는 것부터 시작한다.
자바스크립트에서는 기본 타입을 제외한 모든 값은 객체다.
자바스크립트는 변수를 선언할 때 var 라는 한가지 키워드를 사용한다.
- 선언부에 Data Type을 기재하지 않는다.
- var 선언문이 위치한 영역에 따라 전역/지역변수 결정
- var 를 사용하지 않으면 전역(global)변수로 선언
var 로 변수를 선언하기 때문에 데이터 타입이 무엇인지 몰라서 헤매는 경우도 생기더라.
+ 는 숫자연산과 문자열 연결에 사용되므로 잘못된 결과가 나올 수 있으니 주의해서 봐야 한다.
숫자 |
다른 언어와 달리 하나의 숫자형만 존재한다. 모든 숫자를 64비트 부동 소수점 형태로 저장한다. 모든 숫자를 실수로 처리하므로, 나눗셈 연산을 할 때는 주의해야 한다. ex) 1/2 = 0.5 정수만 구하고 싶다면 Math.floor() 메서드를 사용한다. + 연산자는 숫자일 경우에는 더하기 연산이 수행된다. Number 형 변환 실패 결과는 NaN ex) "abc" - 0 = NaN |
문자열 |
작은 따옴표나 큰 따옴표로 생성한다. 문자열은 문자 배열처럼 인덱스를 이용해서 접근할 수 있다. + 연산자는 문자열 연결 연산을 수행한다. |
boolean |
자바스크립트는 true 와 false를 나타내는 boolean 타입을 가진다. |
undefined |
자바스크립트에서 '값이 비어있음'을 나타낸다. typeof 연산자 결과는 undefined 이다. 즉, Data Type 이 정해지지 않은 타입 |
null |
자바스크립트에서 '값이 비어있음'을 나타낸다. typeof 연산자 결과는 object 이다. null 이 아니다. 아무것도 참조하지 않는 값이다. |
객체 |
자바스크립트 객체는 key:value 형태의 property들은 저장하는 컨테이너다. - 객체 내에서 변수는 속성(property)이라 부른다. - 객체 내에서 함수는 메서드(method)라 부른다. - 이름은 key라고 불린다. 객체는 여러 개의 property들을 포함할 수 있다. 객체 생성 - 생성자 문법을 이용하여 객체 생성 : this 키워드 -> window 객체를 나타냄 - 객체 생성자 표기법을 이용하여 객체를 생성 객체 property 삭제는 delete 연산자를 이용해서 삭제할 수 있지만 객체 자체는 삭제 못한다. 상속이란 기존의 생성자 함수나 객체를 기반으로 새로운 생성자 함수나 객체를 쉽게 만드는 것 |
비교 | 기본 타입은 동등 연산자(==)를 이용해서 비교할 때 값을 비교한다. 동등 연산자(==)는 피연산자의 타입이 다를 경우 타입 변환을 거친 다음 비교한다. 일치 연산자(===)는 피연산자의 타입이 다를 경우 타입을 변경하지 않고 비교한다. |
배열 | 자바스크립트에서 배열은 크기를 지정하지 않아도 된다. 실제 메모리는 length 크기처럼 할당되지 않는다. push() 메서드는 인수로 넘어온 항목을 배열의 끝에 추가한다. arr.length = 5; arr.push('english'); 생성자 함수로 배열을 생성할 때 new 연산자를 사용한다. delete arr[3]; // 배열 요소 삭제하라는 의미지만 실제는 해당 요소값을 undefined로 설정한다. 배열도 객체이므로 for(var i in arr) { console.log(i, arr[i]); } 문을 사용해서 배열 내의 모든 프로퍼티를 열거할 수 있다. --> 불필요한 프로퍼티가 출력될 수 있다. for(var i=0; i<arr.length; i++) { console.log(i, arr[i]); } 문을 사용하면 불필요한 프로퍼티가 출력되지 않는다. |
함수 | function 키워드로 함수를 선언한다. 선언부에 Return Type 을 기재하지 않는다. 자바스크립트에서는 함수도 하나의 값처럼 취급한다. 함수도 숫자나 문자열처럼 변수에 할당하는 것이 가능하다. 매개변수로 넘기는 값에 변수 타입을 기술하지 않는다. 자바스크립트 함수 표현식에서 함수 이름은 꼭 붙이지 않아도 된다. (익명함수) 함수 내부에서 정의된 매개변수는 var를 사용하여 정의한다. 함수에 정의된 인자가 3개라고 가정하자. - 2개는 정의하나 나머지 하나를 정의하지 않으면 undefined 값이 할당된다. - 정의된 개수보다 많게 4개를 정의하면, 초과된 인수는 무시된다. |
'Web 프로그램 > js, jQuery' 카테고리의 다른 글
ajax 상대 경로 설정 문제 완벽 해결방법 (0) | 2017.02.21 |
---|---|
window.location 정리 (0) | 2017.02.16 |
[jQuery] dynamic input box 추가 using jQuery (0) | 2017.01.07 |
[Javascript] window open 및 div popup 처리 방법 (0) | 2017.01.04 |
[jQuery] jqplot 를 이용한 막대 그래프 통계 (MySQL DB 실제 연동) (0) | 2016.12.31 |