1. JavaScript란
- 인터프리터 방식의 Script언어
- HTML에 기능을 추가하기 위해서 사용
> HTML은 정적인 요소를 나타낸다면, JavaScript는 동적인 요소를 나타낸다.
- 가격이 무료이며, 대부분의 브라우져에서 지원해준다
- ECMA에 의해 표준화가 되었다.
2. JavaScript적용하기
- HTML 내부에 삽입 : <script>태그를 사용하여 head나 body 태그 내부에 넣어준다.
ex) <script type = "text/javascript"> <--! // --> </script>
여기서 <--! -->주석이 들어가는 이유는 Javascript를 지원하지 않는 브라우져를 위해서 사용된다.
- 외부 JavaScript 파일 사용
ex) <script type = "text/javascript" scr = "FILENAME.js" ></script>
외부에 선언후 태그에 속성갑쳐럼 스크립트의 함수를 불러다 쓴다.
3. Java와의 비교
- 결론부터 말하면, 비슷하긴하지만 전혀 다른 언어이다.
- 공통점
ⓐ 대/소문자 구분
ⓑ 문장은 ';' 에 의해 구분
ⓒ 기본적인 제어 구문, 블록 등이 자바와 동일한 형태를 보인다
- 차이점
ⓐ Dynamic한 언어이다. : 명시적인 데이터 타입 선언이 없음
ⓑ 함수도 객체처럼 사용된다.
ⓒ Prototype를 이용
4. 데이터 타입
- 숫자 : 정수와 실수의 구분이 없으며 이중 정밀도를 보인다.
> NaN : 숫자가 아니다 // 1/0 : 무한대
- 문자열 : 16비트의 유니코드를 사용
> 문자열도 객체로 함수를 포함하고 있다.
- Boolean : Ture or False
> False : false, 0, NaN, null, nudefined
5. 변수
- 데이터 타입을 지정하지 않음
- 필요한 경우 타입 변환이 자동으로 일어난다.
> 강제로 타입을 변환하는 함수도 존재한다. parseInt(), parseFloat(), Number(), String()
- 변수선언 : 에러를 줄이기 위해서 선언해주는 var와 함께쓰는 것을 권장한다.
> var a; // undefined : 초기화 되지가 않음
var b = "bee"; // 초기화가 됨
c = "car"; // var를 생략하고도 사용 가능
※ 자바스크립트에서는 var를 사용하지 않으면 전역변수가 된다.
6. 연산자
- 자바와 동일하나 추가적인 것이 몇개 존재
> '===' 형변환을 하지 않고 비교를 한다.
ex) 3 == "3" // 스트링 3과 숫자 3은 숫자 3이 스트링으로 형변환한 후 비교를 한다. 즉, true
3 === "3" // 숫자3이 위와 같은과정(스트링으로의 변환)을 갖지 않으므로 false
- typeof : 변수의 타입을 알려준다.
7. 제어구문
- 자바와 동일하나 새로 추가된 형태가 존재한다.
- var name = n && n.getName(); // 이 뜻은 n이 존재하면 n의 getName함수를 실행하는 것이다.
- var name = (n && n.getName()) || "default";
// 이 뜻은 n이 존재하면 n의 getName함수를 실행, 없으면 default값을 준다.
8. 객체
- Key - value형식으로 해쉬형태를 취한다.
- for루프 등의 순환문을 할때에 obj의 키값을 이용하여서도 돌릴 수 있다.
- 선언
var obj = { EXPR } // EXPR안에 또다른 객체가 올수도 있다!!
9. 함수
- 함수도 객체임을 생각하자!!
- 데이터 타입 지정이 없으며 return이 없으면 undefined를 반환한다.
- 지역 변수 사용이 가능하다. 물론, var를 붙여서 사용해야 할 것이다.
- 익명 함수
> 함수도 객체 이므로 다른 객체의 멤버가 될 수 있다.
> 데이터 함수가 혼재
- this사용 가능
- 만일 new를 계속하다보면 함수가 지속적으로 함수가 생성되어 메모리에 무리가 올수 있다.
> 이것을 방지하기 위해 발생한 것이 Prototype!!
10. 프로토타입
- Prototype는 모든 객체에서 공유할 수 있는 객체를 의미한다.
- 특별히 override되지 않았다면 prototype의 객체에 접근을 시도한다
- 즉, 객체내에서 함수들이 공유해서 사용할수 있다.
- 프로그램 실행 중에 객체의 프로토타입을 수정이 가능하다.
---------------------------------------------------------------------------------------
자바 스크립트의 능력을 향상시키고 싶다면, Jquery의 오픈소스를 분석해보는 것도 좋다.
- 인터프리터 방식의 Script언어
- HTML에 기능을 추가하기 위해서 사용
> HTML은 정적인 요소를 나타낸다면, JavaScript는 동적인 요소를 나타낸다.
- 가격이 무료이며, 대부분의 브라우져에서 지원해준다
- ECMA에 의해 표준화가 되었다.
2. JavaScript적용하기
- HTML 내부에 삽입 : <script>태그를 사용하여 head나 body 태그 내부에 넣어준다.
ex) <script type = "text/javascript"> <--! // --> </script>
여기서 <--! -->주석이 들어가는 이유는 Javascript를 지원하지 않는 브라우져를 위해서 사용된다.
- 외부 JavaScript 파일 사용
ex) <script type = "text/javascript" scr = "FILENAME.js" ></script>
외부에 선언후 태그에 속성갑쳐럼 스크립트의 함수를 불러다 쓴다.
3. Java와의 비교
- 결론부터 말하면, 비슷하긴하지만 전혀 다른 언어이다.
- 공통점
ⓐ 대/소문자 구분
ⓑ 문장은 ';' 에 의해 구분
ⓒ 기본적인 제어 구문, 블록 등이 자바와 동일한 형태를 보인다
- 차이점
ⓐ Dynamic한 언어이다. : 명시적인 데이터 타입 선언이 없음
ⓑ 함수도 객체처럼 사용된다.
ⓒ Prototype를 이용
4. 데이터 타입
- 숫자 : 정수와 실수의 구분이 없으며 이중 정밀도를 보인다.
> NaN : 숫자가 아니다 // 1/0 : 무한대
- 문자열 : 16비트의 유니코드를 사용
> 문자열도 객체로 함수를 포함하고 있다.
- Boolean : Ture or False
> False : false, 0, NaN, null, nudefined
5. 변수
- 데이터 타입을 지정하지 않음
- 필요한 경우 타입 변환이 자동으로 일어난다.
> 강제로 타입을 변환하는 함수도 존재한다. parseInt(), parseFloat(), Number(), String()
- 변수선언 : 에러를 줄이기 위해서 선언해주는 var와 함께쓰는 것을 권장한다.
> var a; // undefined : 초기화 되지가 않음
var b = "bee"; // 초기화가 됨
c = "car"; // var를 생략하고도 사용 가능
※ 자바스크립트에서는 var를 사용하지 않으면 전역변수가 된다.
6. 연산자
- 자바와 동일하나 추가적인 것이 몇개 존재
> '===' 형변환을 하지 않고 비교를 한다.
ex) 3 == "3" // 스트링 3과 숫자 3은 숫자 3이 스트링으로 형변환한 후 비교를 한다. 즉, true
3 === "3" // 숫자3이 위와 같은과정(스트링으로의 변환)을 갖지 않으므로 false
- typeof : 변수의 타입을 알려준다.
7. 제어구문
- 자바와 동일하나 새로 추가된 형태가 존재한다.
- var name = n && n.getName(); // 이 뜻은 n이 존재하면 n의 getName함수를 실행하는 것이다.
- var name = (n && n.getName()) || "default";
// 이 뜻은 n이 존재하면 n의 getName함수를 실행, 없으면 default값을 준다.
8. 객체
- Key - value형식으로 해쉬형태를 취한다.
- for루프 등의 순환문을 할때에 obj의 키값을 이용하여서도 돌릴 수 있다.
- 선언
var obj = { EXPR } // EXPR안에 또다른 객체가 올수도 있다!!
9. 함수
- 함수도 객체임을 생각하자!!
- 데이터 타입 지정이 없으며 return이 없으면 undefined를 반환한다.
- 지역 변수 사용이 가능하다. 물론, var를 붙여서 사용해야 할 것이다.
- 익명 함수
> 함수도 객체 이므로 다른 객체의 멤버가 될 수 있다.
> 데이터 함수가 혼재
- this사용 가능
- 만일 new를 계속하다보면 함수가 지속적으로 함수가 생성되어 메모리에 무리가 올수 있다.
> 이것을 방지하기 위해 발생한 것이 Prototype!!
10. 프로토타입
- Prototype는 모든 객체에서 공유할 수 있는 객체를 의미한다.
- 특별히 override되지 않았다면 prototype의 객체에 접근을 시도한다
- 즉, 객체내에서 함수들이 공유해서 사용할수 있다.
- 프로그램 실행 중에 객체의 프로토타입을 수정이 가능하다.
---------------------------------------------------------------------------------------
자바 스크립트의 능력을 향상시키고 싶다면, Jquery의 오픈소스를 분석해보는 것도 좋다.