🎨 Front-End/JavaScript & JQuery

λ³€μˆ˜

μ˜¬γ„Ή1브 2017. 5. 28. 15:56
λ°˜μ‘ν˜•

* 01. λ³€μˆ˜

- 데이터λ₯Ό μ €μž₯ν•˜λŠ” μž₯μ†Œ

- 데이터λ₯Ό 읽고 μ“Έ 수 μžˆλŠ” μž₯μ†Œ


* 02. λ³€μˆ˜ 생성 방법

1) λ³€μˆ˜ ν•˜λ‚˜ 생성

var λ³€μˆ˜μ΄λ¦„ = κ°’;


2) λ³€μˆ˜ μ—¬λŸ¬ 개 생성

var λ³€μˆ˜μ΄λ¦„1 = 데이터;

var λ³€μˆ˜μ΄λ¦„2 = 데이터;

...


or


var λ³€μˆ˜μ΄λ¦„1 = 데이터[, λ³€μˆ˜μ΄λ¦„2 = 데이터, ...]; 


3) λ³€μˆ˜μ΄λ¦„ λ§Œλ“€ λ•Œ μ£Όμ˜μ‚¬ν•­

 - 숫자 μ‹œμž‘ μ•ˆ 됨

 ex) var 1st = 10; // μ—λŸ¬ λ°œμƒ


 - λŒ€μ†Œλ¬Έμž ꡬ뢄

 ex)

 var name = "hello";

 var Name = "hello";

 >> name λ³€μˆ˜μ™€ Name λ³€μˆ˜λŠ” μ„œλ‘œ λ‹€λ₯Έ λ³€μˆ˜


 - λ³€μˆ˜μ˜ μ‹œμž‘μ€ λŒ€λ¬Έμžκ°€ μ•„λ‹Œ "μ†Œλ¬Έμž"둜 μ‹œμž‘

 ex) var Name = "hello"; λŒ€μ‹ 

var name = "hello"; 

 >> λ³€μˆ˜λŠ” λŒ€λ¬Έμž, μ†Œλ¬Έμž ꡬ뢄 없이 생성 κ°€λŠ₯ν•˜μ§€λ§Œ, 암묡적인 κ·œμΉ™.


 - μƒμˆ˜ λ³€μˆ˜μ˜ 경우 λͺ¨λ‘ "λŒ€λ¬Έμž"둜 생성

 ex) var DB_NAME = "yourSQL";

 >> μƒμˆ˜ λ³€μˆ˜λž€, ν•œ 번 μ €μž₯ν•œ ν›„ μˆ˜μ •ν•  수 μ—†λŠ” λ³€μˆ˜.


 - μ—¬λŸ¬ 단어가 쑰합될 경우 낙타 ν‘œκΈ°λ²•(camelcase)으둜 μž‘μ„±

 ex)

 var userName = "hey";

 var selectMenuIdx = "0";


 - 이미 μ •μ˜λœ μ˜ˆμ•½μ–΄(keyword) μ‚¬μš© μ•ˆλ¨

 cf. μ˜ˆμ•½μ–΄ : break, case, catch, continue, default, delete, do, else, finally, for, function, if, in, instanceof, new, return, switch, this, throw, try, typeof, var, void, while, with λ“±.


* 04. λ³€μˆ˜μ— μ €μž₯ν•  수 μžˆλŠ” 데이터 μ’…λ₯˜

1) 데이터 μœ„μΉ˜ 

 - "="λ₯Ό κΈ°μ€€μœΌλ‘œ 우츑 / λ³€μˆ˜λŠ” "="λ₯Ό κΈ°μ€€μœΌλ‘œ μ’ŒμΈ‘μ—

 ex) var name = "이름";

 >> name (λ³€μˆ˜) "=" "이름"(데이터)


2) 데이터 μ’…λ₯˜

 - μ €μž₯ν•  수 μžˆλŠ” λ°μ΄ν„°μ˜ μ’…λ₯˜λŠ” λ‹€μŒκ³Ό κ°™λ‹€ : 

숫자(number), 논리(boolean), 문자(String), ν•¨μˆ˜ (Function), 클래슀 (class), 클래슀 μΈμŠ€ν„΄μŠ€(class Instance), undefined, null


- 데이터 ν˜•? λ³€μˆ˜μ— μ €μž₯(보관)ν•  수 μžˆλŠ” κ°’

(1) μˆ«μžν˜•(Number) : μ •μˆ˜ν˜•, μ‹€μˆ˜ν˜• ꡬ뢄 κ°€λŠ₯

 - μ •μˆ˜ν˜• 10μ§„μˆ˜ : μΌμƒμƒν™œμ—μ„œ μ‚¬μš©ν•˜λŠ” 숫자. μ†Œμˆ˜μ  μ—†μŒ.

 - μ •μˆ˜ν˜• 16μ§„μˆ˜ : 0x으둜 μ‹œμž‘ν•˜λ©° 숫자 0~9, 문자 A~Fλ₯Ό μ‚¬μš©ν•΄ 숫자λ₯Ό ν‘œν˜„. 색상값을 λ‚˜νƒ€λ‚Ό λ•Œ μ‚¬μš©.

 - μ‹€μˆ˜ν˜• : μ†Œμˆ˜μ μ„ κ°–λŠ” 숫자.

 ex) var age = "25";


(2) λ¬Έμžν˜•(String)

 ex) var id = "don't play";


(3) λ…Όλ¦¬ν˜•(Boolean) : true(μ°Έ), false(κ±°μ§“)


(4) νŠΉμˆ˜ν˜•(Undefined) : λ³€μˆ˜λŠ” μ„ μ–Έν–ˆμ§€λ§Œ, 값이 아직 ν• λ‹Ήλ˜μ§€ μ•Šμ€ μƒνƒœ 

 ex) var username; // κΈ°λ³Έκ°’ undefined // λ³€μˆ˜μ˜ κΈ°λ³Έ μ΄ˆκΈ°κ°’


 ex)

var data1;

alert("data1 = " + data1);


>> [좜λ ₯ κ²°κ³Ό] 

data1 = undefined


 ex)

function myFunc(data1) {

alert ("data1 = " + data1);

}


myfunc("value1");

myfunc();


>> [좜λ ₯ κ²°κ³Ό]

data1 = value1;

data1 = undefined;

  

(5) νŠΉμˆ˜κ°’(Null) : 값이 아직 μ—†λ‹€λŠ” 의미. undefined와 같은 의미둜 μ‚¬μš©.

"객체"λ₯Ό 담은 λ³€μˆ˜λ₯Ό μ΄ˆκΈ°ν™”ν•  λ•Œ μ‚¬μš©ν•˜λŠ” κ°’.


cf. Undefined와 Null의 차이?

undefined : λ³€μˆ˜μ˜ κΈ°λ³Έ μ΄ˆκΉƒκ°’

null         : 객체λ₯Ό 담을 λ³€μˆ˜λ₯Ό μ΄ˆκΈ°ν™”ν•  λ•Œ μ‚¬μš©ν•˜λŠ” κ°’

(6) ν•¨μˆ˜(Function) 

(7) 클래슀(Class)

(8) 객체(Object)


* 05. λ³€μˆ˜κ°’μ΄ μžλ™μœΌλ‘œ μ½ν˜€μ§€λŠ” 경우

1) μš°μΈ‘μ— λ³€μˆ˜λ₯Ό λ‘λŠ” 경우 

(λ³€μˆ˜μ— λ“€μ–΄μžˆλŠ” 값이 μ½ν˜€ λ‹€λ₯Έ λ³€μˆ˜μ— λŒ€μž…ν•˜λŠ” 경우)

- A = B

: B에 λ“€μ–΄μžˆλŠ” 데이터 쀑 숫자, 문자, 논리 λ°μ΄ν„°λ§Œμ΄ λ³΅μ‚¬λ˜λ©°, λ°°μ—΄, ν•¨μˆ˜, 객체 데이터 등은 데이터가 λ“€μ–΄μžˆλŠ” μ£Όμ†Œκ°€ A둜 볡사.


2) ν•¨μˆ˜ 호좜 μ‹œ λ³€μˆ˜λ₯Ό λ§€κ°œλ³€μˆ˜ κ°’μœΌλ‘œ μ‚¬μš©ν•˜λŠ” 경우

- function(A);


3) μ—°μ‚°μžμ™€ ν•¨κ»˜ μ‚¬μš©ν•˜λŠ” 경우

- A = B μ—°μ‚°μž C;


* 06. λ³€μˆ˜λ₯Ό ν™œμš©ν•œ 데이터 쀑볡 제거 및 μž¬μ‚¬μš©

- μ‹€λ¬΄μ—μ„œ λ³€μˆ˜λ₯Ό 주둜 μ‚¬μš©ν•˜λŠ” κ²½μš°λŠ” 데이터λ₯Ό μ €μž₯ν•˜λŠ” μš©λ„μ΄κΈ°λ„ ν•˜μ§€λ§Œ, 데이터 μž¬μ‚¬μš©μ„±μ—λ„ μžˆλ‹€.


* 07. λ³€μˆ˜μ— μ–΄λ–€ 값이 λ“€μ–΄μžˆλŠ”μ§€ ν™•μΈν•˜κΈ°

1) alert()

- alert(data);

- νŠΉμ • 정보(data)λ₯Ό μ‚¬μš©μžμ—κ²Œ λ©”μ‹œμ§€ 창으둜 μ•Œλ €μ£ΌκΈ° μœ„ν•΄ μ‚¬μš©.


2) document.write()

- document.write(data, [data, ...]);

- HTML λ¬Έμ„œμ˜ body μ˜μ—­μ— <div>와 같은 HTML νƒœκ·Έ λ‚΄μš©μ„ 좜λ ₯.

- λΈŒλΌμš°μ € 화면에 'λ°”λ‘œ' 좜λ ₯ν•  수 μžˆλŠ” κΈ°λŠ₯


3) console.log()

- console.log(data, [data, ...]);

- 버그 : 논리적인 였λ₯˜

- 디버깅 : 버그λ₯Ό μ°Ύμ•„ μ—†μ• λŠ” μž‘μ—…

=> console.log()λŠ” μ „λ¬Έ 디버깅 ν•¨μˆ˜

- 크둬, μ‚¬νŒŒλ¦¬μ—μ„œλ§Œ μ‚¬μš© κ°€λŠ₯, 좜λ ₯값은 inspector ν™”λ©΄μ˜ μ½˜μ†” μ˜μ—­μ— 좜λ ₯.


* 08. 주석

1) μ£Όμ„μ΄λž€?

- 주둜 μž‘μ„±ν•œ μ½”λ“œμ— μ„€λͺ…을 달아놓기 μœ„ν•΄μ„œ μ‚¬μš©, 싀행이 λ˜μ§€ μ•ŠλŠ” μ†ŒμŠ€!

- κ°œλ°œμžλ“€κ°„μ˜ ν˜‘μ—…, μœ μ§€λ³΄μˆ˜λ₯Ό μœ„ν•΄ λ°˜λ“œμ‹œ ν•„μš”ν•œ ν”„λ‘œκ·Έλž˜λ°μ˜ 일뢀뢄.


2) 주석 λ§Œλ“œλŠ” 방법

(1) ν•œ 쀄 주석

// 여기에 μ„€λͺ… μž…λ ₯ν•˜κΈ°.

- κ°„λ‹¨ν•œ 주석을 μž‘μ„±ν•  λ•Œ μ‚¬μš©.


(2) μ—¬λŸ¬ 쀄 주석

/*

여기에 μ„€λͺ… μž…λ ₯ν•˜κΈ°.

*/

- κΈ΄ 주석을 μž‘μ„±ν•  λ•Œ μ‚¬μš©.


* 09. λ°°μ—΄

1) λ°°μ—΄μ΄λž€?

- λ³€μˆ˜ ν•˜λ‚˜μ— 'μ—¬λŸ¬ 개의 데이터'λ₯Ό 담을 수 μžˆλŠ” 데이터 ν˜•μ΄λ‹€.

*κ·Έλ ‡λ‹€λ©΄ '같은' μžλ£Œν˜•μ˜ 데이터λ₯Ό μ—¬λŸ¬ 개 μž…λ ₯ν•  수 있음? 


2) λ°°μ—΄ 생성 방법

var λ³€μˆ˜μ΄λ¦„ = [data, [,...]];

or

var λ³€μˆ˜μ΄λ¦„ = new Array(data, [,...]);


3) λ°°μ—΄ μš”μ†Œ μ ‘κ·Ό

배열이름[n];    // λ°°μ—΄μ˜ n번째 방에 μžˆλŠ” 데이터에 μ ‘κ·Όν•œλ‹€λŠ” 의미.


* 10. λ³€μˆ˜ μ’…λ₯˜

1) λ³€μˆ˜ μ’…λ₯˜

(1) μ „μ—­ λ³€μˆ˜

- μ „μ—­μ—μ„œ μ‚¬μš©ν•˜λŠ” 데이터λ₯Ό λ‹΄λŠ” λ³€μˆ˜. μ–΄λ””μ„œλ“  μ ‘κ·Όν•΄μ„œ μ‚¬μš©μ΄ κ°€λŠ₯.

(2) μ§€μ—­ λ³€μˆ˜

- νŠΉμ • μ˜μ—­μ—μ„œλ§Œ μ‚¬μš©ν•  수 μžˆλŠ” λ³€μˆ˜. ν•¨μˆ˜ 내뢀에 λ§Œλ“€μ–΄μ§€λŠ” λ³€μˆ˜.

(3) 맀개 λ³€μˆ˜(parameter)

- ν•¨μˆ˜ μ™ΈλΆ€μ—μ„œλ§Œ ν•¨μˆ˜ λ‚΄λΆ€λ‘œ 데이터λ₯Ό μ „λ‹¬ν•˜κΈ° μœ„ν•œ μš©λ„λ‘œ μ‚¬μš©ν•˜λŠ” λ³€μˆ˜

(4) 멀버 λ³€μˆ˜(property)

- 클래슀 내뢀에 λ§Œλ“€μ–΄μ§€λ©° 주둜 κ°μ²΄μ—μ„œ μ‚¬μš©ν•˜λŠ” 정보λ₯Ό λ‹΄λŠ” λ³€μˆ˜.


2) μ „μ—­ λ³€μˆ˜

<script>

var global = "μ „μ—­λ³€μˆ˜";             // μ „μ—­λ³€μˆ˜


window.onload = function() {

global2 = "μ „μ—­λ³€μˆ˜";          // ν•¨μˆ˜ λ‚΄λΆ€μ—μ„œ var 없이 λ³€μˆ˜μ— 값을 λŒ€μž…ν•˜λ©΄ "μ „μ—­λ³€μˆ˜"κ°€ 됨. window.global2와 κ°™λ‹€.

}


function func1() {

var global3 = "μ „μ—­λ³€μˆ˜?";    // func1 λ‚΄μ—μ„œ λ§Œλ“€μ–΄μ§„ λ³€μˆ˜μ΄λ―€λ‘œ "μ§€μ—­λ³€μˆ˜"λ‹€.

}

</script>


3) μ§€μ—­ λ³€μˆ˜

<script>

window.onload = function() {

var g = "μ „μ—­λ³€μˆ˜";          

}


function func1() {

var g = "μ „μ—­λ³€μˆ˜?";

}

</script>


이 λ•Œ, window.onloadμ—μ„œ μƒμ„±λœ var g != func1()μ—μ„œ μƒμ„±λœ var g

μ™œλƒν•˜λ©΄, 각자 ν•¨μˆ˜ λ‚΄μ—μ„œ μƒμ„±λœ λ³€μˆ˜λŠ” κ·Έ ν•¨μˆ˜ λ‚΄μ—μ„œλ§Œ μ‚¬μš©μ΄ κ°€λŠ₯ν•˜κΈ° λ•Œλ¬Έμ΄λ‹Ή.


5) 멀버 λ³€μˆ˜

<script>

function MyClass() {

this.name = "λ³€μˆ˜";                                    // MyClass 클래슀의 멀버 λ³€μˆ˜ name!

}


MyClass.prototype.showName = function() {          // MyClass 클래슀의 멀버 ν•¨μˆ˜ or λ©”μ†Œλ“œ showName!

document.write("name = ", this.name);

}


var objClass = new MyClass();

objClass.showName();

</script>

λ°˜μ‘ν˜•