1. 인터프리터 언어
2. 데이터형
number - 실수, 정수
string - 문자, 문자열
undefined 가능
3. 변수 사용
var 변수명; -> parsing시 undefined 값 할당. (지역 변수)
=> scope가 {} 단위가 아닌 function{} 단위.
변수명 = literal; -> run time 중 값 할당. (전역변수)
4. 데이터 타입의 전환이 자유로움. 변수에 할당되는 값에 따라 변수 타입 결정됨.
5. typeof (변수) => 타입 반환
'string', 'number', 'object', 'undefined', 'function', 'boolean',
6. 데이터가 자동으로 형변환 됨.
7. 문자열과 다른 데이터형이 + 연산하면 문자열로 연결됨.
ex) '123'+45 => '12345'
8. 비교 연산자 ==, != 필요시 형변환 후 비교
9. identical 연산자 ===, !== 형 변환하지않고 비교
10. 논리연산자 &&, || 사용 시 자동 형 변환으로 return 값이 true, false가 아닌 결과 값도 리턴됨.
ex) "123" || 0 => "123"
"123" && 0 => 0
어떤 함수가 인자를 받을 때 반드시 배열을 받아야 할 경우
이벤트 처리시 ie와 다른 브라우저 간 처리방법이 다른경우
11. 기타 연산자
, => 계속해서 진행
instanceof => 객체가 지정된 클래스의 인스턴스인지 확인
12. 향상된 for문
for(i in array){
}
13. break label문
label:
for(i=0;i<9;i++){
for(j=0;j<9;j++){
break label;
}
}
// 여기로 옴.
14. continue label문
label:
for(i=0;i<9;i++){ // 여기로 옴.
for(j=0;j<9;j++){
continue label;
}
}
15. 함수 선언
함수명(); // 가능
function 함수명(매개변수, ...){
return 값;
}
=> 함수가 생성되는 시점. parsing 단계
16. 함수 리터럴 (익명함수)
변수명(); // 불가능
var 변수명 = function(매개변수,..){
return 값;
}
변수명(); // 가능
=> 함수가 생성되는 시점. runtime 단계
17. Function 생성자
var a = 변수명(인자1,..) // 불가능
var 변수명 = new Function("인자1", ...,"실행 문장");
var a = 변수명(인자1,..) // 가능
=> 함수가 생성되는 시점. runtime 단계
18. 함수 정의 매개변수 개수와 호출인자 개수가 달라도 가능
function test(a, b){
}
test(a); => 가능
test(a,b); => 가능
19. arguments 내장변수를 이용해 parameter 배열을 사용가능
arguments.callee()는 현재 실행 함수 호출
function test(a, b){
for(i=0; i<arguments.length; i++){
arguments[i];
arguments.callee(a); // 재귀함수 사용가능
}
}
test(a);
test(a,b);
20. 중첩 함수를 이용하여 외부에서 호출 불가하도록 사용 가능
var a=function(){
var b = function(){
}
}
b(); // b함수 호출 불가
function a(){
function b(){
}
}
b(); // b함수 호출 불가
21. 콜백 함수 - 이벤트 처리시 많이 사용
var a = function(){ // 콜백 함수
// 실행문
}
onclick(a); // onclick()이벤트로 a콜백 함수 호출
22. 내장함수
alert("a"); // 알림창
setTimeout(함수, timeout 시간); // 한번 실행
setInterval(함수, timeout 시간) // 반복 실행
parseInt("문자열"); // string -> number
parseFloat("문자열"); // string -> number
* 별도 정리
23. 내장객체
* Data
- String, Number, Date, Array, Boolean, Object, Math, RegExp
* Browser
- Window, Screen, Location, History, Navigation
* DOM
* 별도 정리
24. 지역변수, 전역변수
1) function 밖에서 변수를 선언하는 경우 - 전역변수
2) function 내부에서 변수를 선언하는 경우 - 전역변수
(반드시 변수가 선언된 function부터 실행되어야한다. )
3) var키워드를 이용해서 function내부에서 정의하는 변수 - 지역변수
4) var키워드를 이용해서 function 밖에서 정의하는 변수 - 전역변수
25. 함수 호이스팅
선언부(<head>)에 함수를 선언시 global영역으로 최우선으로 실행된다.
이로 인해 문제가 발생하는데,
1) 선언부에 함수의 호출이 있는 경우 함수의 선언이 선행되지않아도 에러가 발생하지않는다.
2) Global 영역이 크면 respone시간이 오래 걸린다.
이로인해 표현식으로 사용 권고.(함수 리터럴)
var 변수명 = function 함수명(매개변수1,..){
실행내용
}
'FRONT END > Java Script' 카테고리의 다른 글
[Java Script] 이벤트 정리 (0) | 2020.12.02 |
---|---|
[Java Script] 내장 객체와 내장 함수 (0) | 2020.12.02 |
[Java Script] html에서 자바스크립트 포함 방법 4가지 (0) | 2020.11.28 |