Javascript
3. ์ธ์ด์ ๊ธฐ์ด
-
, = ์ฐ์ฐ์
-
==, != ์ฐ์ฐ์๋ ๋น๊ตํ๊ธฐ ์ ์ ํ๋ณํ์ ์งํํ๋ค.
-
false โ 0 true โ 1 ๋ณํํ๋ค.
-
โ5โ์ 5 ๋น๊ตํ๋ค๋ฉด ๋ฌธ์์ด์ ์ซ์๋ก ํ๋ณํ์ ์๋.
-
ํ๋๊ฐ ๊ฐ์ฒด์ด๊ณ ํ๋๋ค ๊ฐ์ฒด๊ฐ ์๋๋ฉด valueOf() ํธ์ถํ๋ค.
-
null๊ณผ undefined ๋์ผํ๋ค.
-
NaN์ด๋ผ๋ฉด false๋ฅผ ๋ฐํ ํญ์ false๋ฅผ ๋ฐํํ๋ค.
-
{% highlight javascript %} null undefined // true "NaN" NaN // false NaN NaN // false true 1 // true true 2 // false "5" 5 //true {% endhighlight %}
-
====์ ํผ์ฐ์ฐ์์ ํ์ ์ ๋ณํํ์ง ์๊ณ ์๋ ๊ทธ๋๋ก ๋น๊ตํ๋ค.
{% highlight javascript %} var result1 = {โ55โ == 55}; //true var result2 = {โ55โ === 55}; //false {% endhighlight %}
-
==,!=์ ํ์ ๋ณํ ๋๋ฌธ์ ์์ฃผ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ฏ๋ก ๋์ =,!๋ฅผ ์์ฃผ ์ฌ์ฉํ์. ๋ฐ์ดํฐ ํ์ ์ ๊ด๋ฆฌํ๊ธฐ ์ฌ์์ง๋ค.
-
Switch ๋ฌธ
-
===๋ก ๊ฐ์ ๋น๊ตํ๋ฏ๋ก ํ์ ๋ณํ์ ์ผ์ด๋์ง ์๋๋ค. ex) โ10โ๊ณผ 10์ ์๋ก ๋ค๋ฅด๋ค.
-
-
Overloading ์์
4. ๋ณ์์ ์ค์ฝํ, ๋ฉ๋ชจ๋ฆฌ
-
ECMAScript์ ๋ณ์๋ ์์ ๊ฐ๊ณผ ์ฐธ์กฐ ๊ฐ ๋๊ฐ์ง ํ์ ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ์ ์๋ค.
-
์์ ๊ฐ : undefined, Null, Boolean, ์ซ์, ๋ฌธ์์ด
-
์ฐธ์กฐ ๊ฐ : Reference ๊ณต์
{% highlight javascript %} // ์ฐธ์กฐ ๊ฐ var person = new Object(); person.name = โYoung Jaeโ; alert(person.name); //Young Jae
// ์์ ๊ฐ var name = โYoung Jaeโ; name.age = 27; alert(name.age); // undefined
// ๊ฐ ๋ณต์ฌ var obj1 = new Object(); var obj2 = obj1; obj1.name = โYoung Jaeโ; alert(obj2.name); // Young Jae {% endhighlight %}
-
-
๋งค๊ฐ๋ณ์ ์ ๋ฌ์ ๊ฐ์ด ๋ณต์ฌํ๋ ๊ฒ๊ณผ ๋๊ฐ๋ค.
{% highlight javascript %} function addTen(num){ // num โ local Variable num += 10; return num; } var count = 20; var result = addTen(count); alert(count); // 20 alert(result); // 30 {% endhighlight %}
-
obj๋ ํ์ ์กด์ฌํ๋ ์ ์ญ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐ
{% highlight javascript %} function setName(obj){ obj.name = โNESOYโ } var person = new Object(); setName(person); alert(person.name); // NESOY {% endhighlight %}
-
ํจ์์ ๊ฐ์ ์ ๋ฌํ๊ธฐ ๋๋ฌธ์ ํจ์ ๋ด๋ถ์์ ๋งค๊ฐ๋ณ์์ ๊ฐ์ด ๋ฐ๋์์์๋ ๋ถ๊ตฌํ๊ณ ์๋ ๊ฐ์ฒด์ ๋ํ ์ฐธ์กฐ๋ฅผ ๊ทธ๋๋ก ์ ์ง.
{% highlight javascript %} function setName(obj){ obj.name = โNESOYโ obj = new Object(); obj.name = โColaโ; } var person = new Object(); setName(person); alert(person.name); // NESOY {% endhighlight %}
-
Execution Context(EC)
-
์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ ์ฝ๋๋ฅผ ์คํํ๊ธฐ ์ํด ํ์ํ ์ฌ๋ฌ๊ฐ์ง ์ ๋ณด๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ํ ๊ฐ์ฒด๊ฐ Execution Context๋ค.
-
๋ณ์
-
ํจ์ ๋ด๋ถ์์๋ง ์ ๊ทผํ ์ ์๋ ์ง์ญ๋ณ์
-
this๋ก ์ ๊ทผ ๊ฐ๋ฅํ Property
-
-
๋งค๊ฐ๋ณ์
-
ํจ์ ์ ์ธ
-
Scope
-
this
{% highlight javascript %} var x = โxxxโ;
function foo () { var y = โyyyโ;
function bar () { var z = โzzzโ; console.log(x + y + z); //xxxyyyzzz } bar(); } foo(); {% endhighlight %}
-
-
Global Execution Context ์์ฑ
-
ํจ์๊ฐ ํธ์ถ ๋ ๋๋ง๋ค Stack์ ๋ชจ์์ผ๋ก ์์ธ๋ค.
-
ํจ์๊ฐ ์ข ๋ฃ๋๋ฉด ํด๋น ํจ์์ EC ์์ด์ง๊ณ ์ด์ Context๋ก ๋์์จ๋ค.
-
Scope Chain(SC)
-
List ํํ๋ฅผ ๋๊ณ ์๋ค.
-
SC์ ๋ชฉ์ ์ Execution Context๊ฐ ์ ๊ทผํ ์ ์๋ ๋ชจ๋ ๋ณ์์ ํจ์์ ์์๋ฅผ ์ ์ํ๋ ๊ฒ์ด๋ค.
-
Scope Chain์ ์์ชฝ์ ํญ์ ์ฝ๋๊ฐ ์คํ๋๋ ์ปจํ ์คํธ์ ๋ณ์ ๊ฐ์ฒด์ด๋ค.
-
-
Javascript์๋ ๋ธ๋ก ๋ ๋ฒจ ์ค์ฝํ๊ฐ ์๋ค.
-
var๋ฅผ ์ฌ์ฉํด ์ ์ธํ ๋ณ์๋ ์๋์ผ๋ก ๊ฐ๊น์ด ์ปจํ ์คํธ์ ์ถ๊ฐ๋๋ค.
-
์ ์ธํ์ง ์์ผ๋ฉด ์๋์ผ๋ก ์ ์ญ ์ปจํ ์คํธ์ ์ถ๊ฐ๋๋ค.
{% highlight javascript %} // var๋ก ์ ์ธ function add(num1,num2){ var sum = num1 + num2; return sum; } var result = add(10, 20); //30 alert(result); // Error
// ๊ทธ๋ฅ ์ ์ธ function add(num1,num2){ sum = num1 + num2; return sum; } var result = add(10, 20); //30 alert(result); // 30 {% endhighlight %}
-