**[μ½κΈ° μ’μ μ½λκ° μ’μ μ½λλ€.]**λ₯Ό λ³΄κ³ λ©λͺ¨ν λΆλΆμ μ 리νμ΅λλ€.
λͺ©μ°¨
- μ½κΈ° μ½κ² νλ¦μ μ΄ λ§λ€κΈ° β
- κ±°λν ννμ μκ² μͺΌκ°κΈ° β
- λ³μμ κ°λ μ± β
μλ‘
μ’μ μ½λλ λ¬΄μ¨ μΌμ΄ μΌμ΄λκ³ μλμ§λ₯Ό λΉ λ₯΄κ² μ λ¬ν΄μ€λ€.
μ¬μ©νκΈ°μλ μ¦κ²κ³ , μμ μκ²λ λ μ’μ μ½λλ₯Ό λ§λ€μ΄μΌ νκ² λ€λ μꡬλ₯Ό λΆλ¬μΌμΌν€κΈ°λ νλ€.
PART 2 ) 루νμ λ Όλ¦¬λ₯Ό λ¨μννκΈ°
νλ¦μ μ΄ control flow λ Όλ¦¬μ logical expression λ³μ λ±μ λν΄μ μμ보μ.
μ½λκ° μ½λλ₯Ό μ½λ μ¬λμκ² μ μ μ λΆλ΄μ λ λ§μ΄ λΆκ³Όν μλ‘,
λ²κ·Έλ μ’μ²λΌ λμ 보μ΄μ§ μκ³ ,
μ½λ μμ μμ
μ λ μ΄λ €μμ§κ³ ,
κ²°κ΅ κ·Έλ° μ½λλ‘ μμ
νλ μΌμ΄ μ¦κ²μ§ λͺ»νκ² λλ€.
7. μ½κΈ° μ½κ² νλ¦μ μ΄ λ§λ€κΈ°
λΆκΈ°λ¬Έκ³Ό μ νλ¬Έμ μ΄λ €μ΄ λμμ΄λ©°, μ½λλ₯Ό 볡μ‘νκ² λ§λλ μμΈμ΄λ€.
7-1. 쑰건문μμ μΈμμ μμ
A > B
- μΌμͺ½ : κ°μ΄ λ μ λμ μΈ μ§λ¬Έμ λ°λ νν
- μ€λ₯Έμͺ½ : λ κ³ μ μ μΈ κ°, λΉκ΅λμμΌλ‘ μ¬μ©λλ νν
cf_ μλ€νκΈ°λ² (μλ μ μ°λ.. NULL == obj
)
7-2. if/else λΈλ‘μ μμ
- λΆμ μ΄ μλ κΈμ μ λ€λ£¨μ΄λΌ. μ¦
if(!debug)
κ° μλλΌif(debug)
λ₯Ό μ νΈνμ. - κ°λ¨ν κ²μ λ¨Όμ μ²λ¦¬νλΌ.
- λ ν₯λ―Έλ‘κ³ , νμ€ν κ²μ λ¨Όμ λ€λ£¨μ΄λΌ.
7-3. (μΌν μ°μ°μλ‘ μλ €μ§) ?:
λ₯Ό μ΄μ©νλ 쑰건문 νν
- μ€ μλ₯Ό μ΅μννλ μΌλ³΄λ€ λ€λ₯Έ μ¬λμ΄ μ½λλ₯Ό μ½κ³ μ΄ν΄νλ λ° κ±Έλ¦¬λ μκ°μ μ΅μννλ μΌμ΄ λ μ€μνλ€.
7-4. do/while 루νλ₯Ό νΌνλΌ
7-5. ν¨μ μ€κ°μμ λ°ννκΈ°
7-7. μ€μ²©μ μ΅μννκΈ°
루νμ 쑰건문μ λΉλ‘―ν κ·ΈμΈ λΆκΈ°λ¬Έμ μ½κΈ° μ½κ² λ§λλ λ°©λ²μ μ΄ν΄λ³Έ κ²μ΄λ€.
νμ§λ§ μμ μ νλ‘κ·Έλ¨μ μ‘΄μ¬νλ βνλ¦βμ μμμμ€μμ μ‘°λ§ν΄λ³Ό νμκ° μλ€.
νλ‘κ·Έλ¨μ μ 체 μ€ν κ²½λ‘λ₯Ό μ½κ² λ°λΌκ° μ μκ² λ§λλ κ² κΆκ·Ήμ λͺ©νλ€.
8. κ±°λν ννμ μκ² μͺΌκ°κΈ°
μ½λμ ννμ΄ μ»€μ§λ©΄ 컀μ§μλ‘ μ΄ν΄νκΈ° λ μ¬λ ΅λ€. β μμ: λμμ€μ§μ΄ μλμ£Όλ³μ λλλ
- μ€λͺ λ³μ
- 컀λ€λ ννμ μͺΌκ°λ κ°μ₯ μ¬μ΄ λ°©λ²μ μμ νμννμ λ΄μ βμΆκ°λ³μβλ₯Ό λ§λλ κ²μ΄λ€.
( μΆκ°λ³μ == μ€λͺ λ³μ )
- μμ½ λ³μ
- μλ―Έλ₯Ό μ½κ² νμ ν μ μμ΄ λ³λμ μ€λͺ μ μꡬνμ§ μλ ννμ΄λΌκ³ ν΄λ, μλ‘μ΄ λ³μλ‘ λ΄μλλ λ°©λ²μ μ¬μ ν μ μ©ν μ μλ€.
- λλͺ¨λ₯΄κ°μ λ²μΉ μ¬μ©νκΈ° De Morganβs Laws
if (!(file_exists && !is_protected))
if (!file_exists && is_protected)
- μΌνΈ μν· λ Όλ¦¬ μ€μ© λ§κΈ°
- if ( a || b ) aκ° μ°Έμ΄λ©΄ bλ νκ°νμ§ μλλ€.
- μ; 볡μ‘ν λ
Όλ¦¬μ μ¨λ¦νκΈ°
1
2
3
4
5
6bool Range:;OverlapsWith(Range other){
// 'begin'dlsk 'end'κ° 'other'μ μνλμ§κ²μ¬νλ€.
return (begin >= other.begin && begin < other.end) ||
(end > other.begin && end <= other.end) ||
(begin <= other.begin && end >= other.end);
}
- λ μ°μνκ² μ κ·ΌνκΈ°
1
2
3
4
5
6bool Range:;OverlapsWith(Range other){
if (other.end <= begin) return false; // μ°λ¦¬κ° μμνκΈ° μ μ λλλ€.
if (other.begin >= begin) return false; // μ°λ¦¬κ° λλ νμ μμνλ€.
return true; // λ§μ§λ§ κ°λ₯μ±λ§ λ¨μλ€. μ¦ κ²ΉμΉλ€.
}
- κ±°λν ꡬ문 λλκΈ°
λ°λ³΅λλ λΆλΆμ β μμ½λ³μλ‘ μΆμΆν λ (DRY : Donβt Repeat Yourself)
- νμ΄ν μ€μλ₯Ό νΌν μ μλ€.
- μ½λλ₯Ό νλμ νμ΄λ³΄λκ² μ©μ΄νλλ‘ μ½λμ κΈΈμ΄λ₯Ό μ‘°μ΄λΌλ λ μ€μ¬μ€λ€.
- ν΄λμ€λͺ μ λ³κ²½ν΄μΌ ν λ ν κ³³λ§ λ°κΎΈλ©΄ λλ€.
- ννμ λ¨μννλ λ€λ₯Έ μ°½μμ μΈ λ°©λ²λ€
9. λ³μμ κ°λ μ±
λ³μλ₯Ό μν°λ¦¬λ‘ μ¬μ©νλ©΄ μ½λλ₯Ό μ΄ν΄νκΈ°κ° μΌλ§λ μ΄λ €μμ§λμ§ μ΄ν΄λ³Έλ€.
- λ³μμ μκ° λ§μμλ‘ κΈ°μ΅νκ³ λ€λ£¨κΈ° λ μ΄λ €μμ§λ€.
- λ³μμ λ²μκ° λμ΄μ§μλ‘ κΈ°μ΅νκ³ λ€λ£¨λ μκ°μ΄ λ κΈΈμ΄μ§λ€.
- λ³μ κ°μ΄ μμ£Ό λ°λμλ‘ νμ¬ κ°μ κΈ°μ΅νκ³ λ€λ£¨κΈ°κ° λ μ΄λ €μμ§λ€.
9-1. λ³μ μ κ±°νκΈ°
- λΆνμν μμ λ³μλ€
μ΄λ¬ν λ³μκ° κ΅¬μ§ νμνμ§ μλ μ΄μ- 볡μ‘ν ννμ μκ² λλμ§ μλλ€.
- λͺ νμ±μ λμμ΄ λμ§ μλλ€.
- νλ²λ§ μ¬μ©λμ΄ μ€λ³΅λ μ½λλ₯Ό μμΆνμ§ μλλ€.
- μ€κ° κ²°κ³Ό μμ νκΈ°
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24var remove_one = function (array, value_to_remove) {
var index_to_remove = null;
for (var i = 0; i < array.length; i +=1 ){
if (array[i] === value_to_remove) {
index_to_remove = i;
break;
}
}
if (index_to_remove !== null) {
array.splice(index_to_remove, 1);
}
}
/** μμ λ°©λ²λ³΄λ€λ μλλ°©λ² **/
var remove_one = function (array, value_to_remove) {
var index_to_remove = null;
for (var i = 0; i < array.length; i +=1 ){
if (array[i] === value_to_remove) {
array.splice(i, 1);
return;
}
}
}
9-2. νλ¦ μ μ΄ λ³μ μ κ±°νκΈ°
- νλ¦μ μ΄ λ³μ? : νλ‘κ·Έλ¨μ μ€νκ³Ό κ΄λ ¨λ λ°©ν₯μ μ€μ νλ λ° μλ€.
9-3. λ³μμ λ²μλ₯Ό μ’νλΌ
- βμ μλ³μλ₯Ό νΌνλΌβλ μ‘°μΈμ νλ²μ―€ λ€μμ κ²μ΄λ€.
- μ μ λ³μλ μ΄λμμ μ΄λ»κ² μ¬μ©λλμ§ μΌμΌμ΄ νμΈνκΈ° μ΄λ €μ°λ―λ‘ μ΄λ ν©λΉν μ‘°μΈμ΄λ€.
- λν, μ μ λ³μμ μ΄λ¦κ³Ό μ§μ λ³μμ μ΄λ¦μ΄ μ€λ³΅λμ΄ μ΄λ¦κ³΅κ°μ΄ λλ¬μμ§ μλ μκ³ , μ΄λ€ μ½λκ° μ§μ λ³μλ₯Ό λ³κ²½ν λ μ€μλ‘ μ μ λ³μλ₯Ό λ³κ²½νκ±°λ νΉμ κ·Έ λ°λμ κ²½μ°κ° μΌμ΄λ μ μμΌλ―λ‘ νλΉνλ€.
- μ¬μ€ μ μ λ³μ λΏλ§ μλλΌ λͺ¨λ λ³μμ λ²μλ₯Ό μ’νλ μΌμ μΈμ λ μ’λ€.
- λ§μ νλ‘κ·Έλλ° μΈμ΄λ λͺ¨λ, ν΄λμ€, ν¨μ, λΈλ‘ λ²μ κ°μ λ€μν λ²μ/μ κ·Ό μμ€μ μ 곡νλ€.
- μλ°μ€ν¬λ¦½νΈμμ νλΌμ΄λΉ λ³μ λ§λ€κΈ°
1
2
3
4
5
6
7
8submitted = false;
var submit_form = function(form_name){
if(submitted){
return; // νΌμ λ λ² μ μΆνμ§ λ§λΌ.
}
...
submitted = true;
}
submit_form()
λ§μ΄ μ μλ³μ submittedλ₯Ό μ¬μ©νλ μ μΌν ν¨μμ²λΌ 보μ΄μ§λ§,
νμ€ν μ μ μλ€.
β λ€λ₯Έ μλ°μ€ν¬λ¦½νΈ νμΌμμ μ΄μλ λ€λ₯Έ λͺ©μ μΌλ‘ submittedλΌλ μ΄λ¦μ΄ λΆμ μ μ λ³μλ₯Ό μ¬μ©ν μ§λ λͺ¨λ₯΄λ μΌμ΄λ€!
β submitted λ³μλ₯Ό ν΄λ‘μ λ΄λΆμ μ§μ΄ λ£μ΄μ μ΄λ° λ¬Έμ λ₯Ό ν΄κ²°νλ€.
1
2
3
4
5
6
7
8
9
10var submit_form = (function(){
var submitted = false;
return function(form_name){
if(submitted){
return; // νΌμ λ λ² μ μΆνμ§ λ§λΌ.
}
...
submitted = true;
}
}());
β νλΌμ΄λΉν λ²μλ₯Ό λ§λλ ν¨κ³Όλ₯Ό κ°λλ€.