반응형

[광고 누르면 오늘의 행운 상승!!]

단순 데이터 타입

  • 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
  • 함수도 참조타입이다.
반응형

+ Recent posts