반응형
[광고 누르면 오늘의 행운 상승!!]
단순 데이터 타입
- null
- 0, " " 와는 다름
- 어떠한 데이터 타입도 가지고 있지 않음
- 변수에 아무 값이 담겨 있지 않음 - undefine
- 정의되어 있지 않음
- 값이 할당된 적 없는 변수, 생성되지 않는 객체에 접근할 때
- null 과 구분이 쉽지 않음
-> 생성되지 않은 객체에 접근할 때
객체 데이터 타입
- 객체(object) : 다양한 값의 집합
- 객체의 값 : Property, 이름이 붙여져 있음 → 숫자, 문자열.. 등 어떠한 타입이라도 가능
- 객체 리터럴 : JavaScript의 새로운 객체 만들때 사용
객체 리터럴 : {} 로 쌓여있음
ver a = {property1, property2 ------};
Property : [이름 : 값]의 쌍
객체 리터럴의 예
var square = {width : 20, height 30, position: {x:200, y:400}, color: "red"};
비어있는 객체 생성 : ver empthOjb = {};
- 생성자를 이용한 객체 생성
생성자 new → 생성자로 생성한 객체 : property 쉽게 추가 가능
예) 생성자(new)를 사용하여 객체 생성하여 property 설정하기
ver obj = new Object(); //새로운 비어있는 객체 생성
obj.width = 300; //property 접근
- 생성자(new)를 이용한 객체 생성 : 미리 정의되어 제공하는 객체 생성
ver now = new Date();
//새로운 Data() 객체 생성
//Data 객체 : JavaScript에서 제공
- 객체 property 접근 : 객체 이름, property 이름
if(obj.width>10){...}; // obj객체의 width property 값이 10보다 크면 중괄호 내용 실행
obj.height = 30; // obj 객체 안 height property 30으로 설정
배열(Array)
- 배열(Array) : 값의 집합
- 배열의 값 : 연속되는 숫자의 인덱스
- 배열의 생성
생성자(new) 사용
ver a = new Array(); //비어있는 배열 새로 생성
배열 리터럴 사용
ver a = {10, true, 3.5, "orange"); // 배열 생성 및 초기화
- 배열 요소 : 어떠한 데이터 타입이라도 가능
- 배열 요소 할당
a[0] = 10;
a[1] = true;
a[2] = 3.5;
a[3] = "orange";
함수
- 함수 : 미리 정의되어 실행 가능한 코드 덩어리
→ 반복하여 호출 가능
→ JavaScript 프로그래밍의 기본 단위
→ 하나의 데이터 타입으로 변수에 할당 가능
- 함수 생성 : function 키워드로 생성
화씨 온도를 전달받아 섭씨로 변환하여 반환하는 코드
function toCelsius(fahr){
var celsius = 5 * (fahr - 32) / 9;
return celsius;
}
- 함수 리터럴 : 함수를 값으로 변수에 할당
→ 대부분 함수 이름 없음
변수
- 변수 타입
→ 타입 설정하지 않아도 됨
→ 변수 타입에 자유로움
var s = 100;
s = "very big number";
//숫자가 담겨있던 변수 s에 문자열이 담김
- 변수 선언 : var 사용
var n;
var s;
var count;
//변수 선언
var n = 123;
var s = "frog"
// 변수 선언 및 초기화
- 선언 되지 않은 변수 사용 시 : 에러
- 선언 되지 않은 변수에 변수 값 할당 : 자동 변수 생성 (전역변수로 선언) // 권장하지 않음변수의 유효범위
변수의 유효범위
-> 함수를 기준으로 결정
지역변수
- 지역 변수 : 함수 안에 선언된 변수 → 함수 내부로 사용 제한
testScope1();
testScope2();
function() testScope1(){
var scope = "local_A";
//scope 변수 :
//testScope1() 함수 내부에서 선언
//testScope1() 함수 내부에서만 유효
document.writeln(scope);
}
function() testScope1(){
document.writeln(scope);
//error
}
-출력 local_A
//javascript 에러 무시
예) testScope2() 함수를 testScope1() 함수 내부로 옮김
function() testScope1(){
var scope = "local_A";
document.writeln(scope);
testScope2();
function() testScope2(){
document.writeln(scope);
}
document.writeln(scope);
}
//testScope1() 함수 내부에 scope 변수 공유
-출력
local_Alocal_A
- 함수 내부에 선언된 변수
함수 내부의 모든 곳에서 사용 가능
→ 중첩된 함수 내부에서 부모 함수의 변수와 같은 이름의 변수 선언 시
부모 함수의 변수에 가려짐
전역변수
- 전역 변수 : 모든 함수에서 사용할 수 있는 변수 → 전역 변수가 다른 코드에 영향을 주어 오류 발생 위험 존재
- 최소한의 전역 변수만을 사용할 것을 권장
- 전역 변수 정의 : 최상위 위치에서 변수 선언
var scope = "global";
testScope1();
testScope2();
function() testScope1(){
document.writeln(scope);
}
function() testScope2(){
document.writeln(scope);
}
-출력
global global
- 변수는 어떠한 데이터 타입이라도 담을 수 있음
- 데이터 타입 : 고정된 메모리 공간 요구 → 크기의 한계는 없음
- 문자 열, 객체 등은 변수에 담을 수 없음→ 참조 존재(참조 타입)
- 참조 : 메모리 상에 있는 문자 열이나 객체의 위치
기본타입
var a = true;
var b = a;
a= false;
document.writeln(b);
-출력
true
참조타입
var a = [1,2,3,4];
var b = a;
a[0] = 100;
document.writeln(b)
-출력
100,2,3,4
- 함수도 참조타입이다.
반응형
'5. 웹 프로그래밍 > 3. JavaScript' 카테고리의 다른 글
연산자[JavaScript] (0) | 2020.03.15 |
---|---|
입력된 값 문자열인지 숫자인지 판단하기[JavaScript] (0) | 2020.03.15 |
데이터 타입 1[JavaScript] (0) | 2020.03.14 |
JavaScript 구문[JavaScript] (0) | 2020.03.14 |
외부 JavaScript 파일 HTML에 연결하기[JavaScript] (0) | 2020.03.14 |