[JS] ν•¨μˆ˜ μŠ€μ½”ν”„(scope), 객체 μƒμ„±μž ν•¨μˆ˜, prototype, λ‚΄μž₯ν•¨μˆ˜, μ¦‰μ‹œ μ‹€ν–‰ ν•¨μˆ˜

2021. 10. 27. 15:18ㆍHTML + CSS + JS/JS μžλ°”μŠ€ν¬λ¦½νŠΈ

728x90

1. ν•¨μˆ˜ μŠ€μ½”ν”„ scope 

μŠ€μ½”ν”„ (scope) λž€ ν•¨μˆ˜μ˜ μœ νš¨λ²”μœ„λ₯Ό μ˜λ―Έν•œλ‹€. 

 

1️⃣ μ „μ—­λ³€μˆ˜μ™€ μ§€μ—­λ³€μˆ˜ 

μ „μ—­λ³€μˆ˜ : μžλ°”μŠ€ν¬λ¦½νŠΈ μ–΄λ””μ—μ„œλ“  μ‚¬μš©ν•  수 μžˆλŠ” λ³€μˆ˜ 

μ§€μ—­λ³€μˆ˜ : ν•¨μˆ˜ μŠ€μ½”ν”„μ—μ„œλ§Œ μ‚¬μš©ν•  수 μžˆλŠ” λ³€μˆ˜ 

 

2️⃣ μ „μ—­ν•¨μˆ˜μ™€ μ§€μ—­ν•¨μˆ˜ 

μ „μ—­ν•¨μˆ˜ : μžλ°”μŠ€ν¬λ¦½νŠΈ μ–΄λ””μ—μ„œλ“  μ‚¬μš©ν•  수 μžˆλŠ” ν•¨μˆ˜ 

μ§€μ—­ν•¨μˆ˜ : ν•¨μˆ˜ μŠ€μ½”ν”„μ—μ„œλ§Œ μ‚¬μš©ν•  수 μžˆλŠ” ν•¨μˆ˜ 

ν•¨μˆ˜ μŠ€μ½”ν”„μ—μ„œ μ„ μ–Έλœ ν•¨μˆ˜λŠ” 지역 ν•¨μˆ˜κ°€ λ˜μ–΄ ν•¨μˆ˜ μŠ€μ½”ν”„μ—μ„œλ§Œ ν˜ΈμΆœν•  수 μžˆλ‹€. 

 

function ν•¨μˆ˜λͺ…1() {  // μ „μ—­ν•¨μˆ˜ 

  μžλ°”μŠ€ν¬λ¦½νŠΈ μ½”λ“œ; 

}

 

function ν•¨μˆ˜λͺ…2() {

  function ν•¨μˆ˜λͺ…3 () {  // μ§€μ—­ν•¨μˆ˜ 

    μžλ°”μŠ€ν¬λ¦½νŠΈ  μ½”λ“œ; 

  }

}

200이 μ•„λ‹Œ 100 alert κ²½κ³  λ©”μ‹œμ§€ λ°›μŒ 

 

-> μ΄λŸ¬ν•œ 문제λ₯Ό ν•΄κ²°ν•˜λŠ” 방법 : μ¦‰μ‹œ μ‹€ν–‰ ν•¨μˆ˜ 

(function() {

  var λ³€μˆ˜λͺ…; 

 

  function ν•¨μˆ˜λͺ…() {

    μžλ°”μŠ€ν¬λ¦½νŠΈ μ½”λ“œ;

  }

}());

μ΄λ ‡κ²Œ ν•˜λ©΄ alert 200 κ²½κ³ λ©”μ‹œμ§€ 받을 수 μžˆλ‹€. 

 

 

2. 객체 μƒμ„±μž ν•¨μˆ˜ 

λ‚΄μž₯ 객체λ₯Ό 생성할 λ•ŒλŠ” 이미 μžλ°”μŠ€ν¬λ¦½νŠΈ 엔진에 λ‚΄μž₯λ˜μ–΄ μžˆλŠ” 객체 μƒμ„±μž ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ 객체λ₯Ό μƒμ„±ν•œλ‹€. 

checkWeightλΌλŠ” 객체 μƒμ„±μž ν•¨μˆ˜ 생성, 속성은 ν‚€ λͺΈλ¬΄κ²Œ 이름, ν•¨μˆ˜λŠ” getinfo와 getResult

μ΄λ ‡κ²Œ 객체λ₯Ό μƒμ„±ν•˜λ©΄ 객체λ₯Ό μƒμ„±ν•œ 만큼 ν•¨μˆ˜κ°€ λ©”λͺ¨λ¦¬μ— λ“±λ‘λ˜κΈ° λ•Œλ¬Έμ— λ©”λͺ¨λ¦¬λ₯Ό λ‚­λΉ„ν•˜κ²Œ λœλ‹€. 

이럴 λ•Œμ—λŠ” 객체 μƒμ„±μž ν•¨μˆ˜μ— ν”„λ‘œν† νƒ€μž…μ„ μ‚¬μš©ν•˜μ—¬ ν•¨μˆ˜λ₯Ό 등둝해 λ©”λͺ¨λ¦¬ λ‚­λΉ„λ₯Ό 쀄일 수 μžˆλ‹€. 

 

 function ν•¨μˆ˜λͺ… (λ§€κ°œλ³€μˆ˜1, λ§€κ°œλ³€μˆ˜2, ...) {

   this. 속성λͺ… = κ°’;

}

 

ν•¨μˆ˜λͺ….prototype.ν•¨μˆ˜λͺ… = function() {

  μžλ°”μŠ€ν¬λ¦½νŠΈ μ½”λ“œ; 

}

 

var μ°Έμ‘° λ³€μˆ˜ = new ν•¨μˆ˜λͺ…();

 

λ§ˆμ§€λ§‰ trueλŠ” jang와 kang 객체가 같은 ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜κ³  μžˆλ‹€λŠ” λœ»μ΄λ‹€. 

 

 

3. js λ‚΄μž₯ν•¨μˆ˜ 

λ‚΄μž₯ν•¨μˆ˜λž€ μžλ°”μŠ€ν¬λ¦½νŠΈ 엔진에 λ‚΄μž₯된 ν•¨μˆ˜μ΄λ‹€. 

 

- λ‚΄μž₯ν•¨μˆ˜μ˜ μ’…λ₯˜ 

encodeURI() : 문자λ₯Ό μœ λ‹ˆμ½”λ“œλ‘œ 인코딩

encodeURIComponent() : 문자λ₯Ό μœ λ‹ˆμ½”λ“œ κ°’μœΌλ‘œ 인코딩 

decodeURI() : μœ λ‹ˆμ½”λ“œ 값을 λ””μ½”λ”©ν•΄ λ‹€μ‹œ λ¬Έμžν™” 

decodeURIComponent() : μœ λ‹ˆμ½”λ“œ 값을 λ””μ½”λ”©ν•΄ λ‹€μ‹œ λ¬Έμžν™” 

parseInt() :λ¬Έμžμ—΄ 데이터λ₯Ό μ •μˆ˜ν˜• λ°μ΄ν„°λ‘œ λ°˜ν™˜

parseFloat() : λ¬Έμžμ—΄ 데이터λ₯Ό μ‹€μˆ˜ν˜• λ°μ΄ν„°λ‘œ λ°˜ν™˜ 

String() : λ¬Έμžν˜• λ°μ΄ν„°λ‘œ λ°˜ν™˜ 

Number() : μˆ«μžν˜• λ°μ΄ν„°λ‘œ λ°˜ν™˜   

Boolean() : λ…Όλ¦¬ν˜• λ°μ΄ν„°λ‘œ λ°˜ν™˜  

isNan() : is Not a number 의 μ•½μžμ΄λ©° μˆ«μžκ°€ μ•„λ‹Œ λ¬Έμžκ°€ ν¬ν•¨λ˜μ–΄ 있으면 true λ°˜ν™˜ 

eval() : λ¬Έμžν˜• 데이터λ₯Ό λ”°μ˜΄ν‘œκ°€ μ—†λŠ” μžλ°”μŠ€ν¬λ¦½νŠΈ μ½”λ“œλ‘œ 처리 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

728x90