ํ๋ก๊ทธ๋จ ๊ธฐ๋ณธ
JavaScript๋ ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ณํ๋ฉฐ ์ ๋์ฝ ๋ฌธ์ ์ ์ ์ด์ฉํ๋ค. JavaScript ์์๋ ๋ช ๋ น์ ๋ช ๋ น๋ฌธ์ด๋ผ๊ณ ๋ถ๋ฅด๋ฉฐ, ์ธ๋ฏธ์ฝ๋ก (;)์ผ๋ก ๊ตฌ๋ถํ๋ค. ๋ช ๋ น๋ฌธ์ด ํ ์ค๋ก ๊ตฌ์ฑ๋ ๊ฒฝ์ฐ ์ธ๋ฏธ์ฝ๋ก ์ ์๋ต ๊ฐ๋ฅํ์ง๋ง ํ ์ค์ ๋ ๊ฐ ์ด์์ ๋ช ๋ น๋ฌธ์ด ์๋ ๊ฒฝ์ฐ ์๋ต ๋ถ๊ฐ.
ํ๋ก๊ทธ๋จ ๊ตฌ์ฑ ์์
์์ | ์๋ฏธ |
ํค์๋ | JavaScript ์์ฒด์ ๋ฏธ๋ฆฌ ์ ์๋ ๋จ์ด๋ค๋ก ์ฌ์ฉ์๊ฐ ๋ค๋ฅธ ๋ชฉ์ ์ผ๋ก ์ฌ์ฉ๋ ์ ์๋ค. |
์๋ณ์ | ์๋ณ์๋ ์ฌ์ฉ์์ ์ํด ์ ์๋๊ณ ์ฌ์ฉ๋์ด ์ง๋ ๊ฒ์ผ๋ก Object ๋ช , ๋ณ์ ๋ช ์ด๋ ํจ์๋ช ๋ฑ์ ๋ค ์ ์๋ค. |
๋ฆฌํฐ๋ด | ๋ฆฌํฐ๋์ ๋ฐ์ดํฐ ๊ทธ ์์ฒด๋ฅผ ์๋ฏธํ๋ฉฐ, ์ฆ, ๋ณ์์ ๋ฃ๋ ๋ณํ์ง ์๋ ๋ฐ์ดํฐ(๊ฐ)๋ฅผ ๋ํ๋ธ๋ค. |
์ฐ์ฐ์ | ํ๋ก๊ทธ๋จ์์ ์ฐ์ฐ์ ์ํด ์ฌ์ฉ๋๋ ๊ฒ์ผ๋ก ์ฐ์ ์ฐ์ฐ์, ๋ ผ๋ฆฌ์ฐ์ฐ์,๋น๊ต์ฐ์ฐ์,๋์ ์ฐ์ฐ์ ๋ฑ์ด ์๋ค. |
์ ์ธ ๋ฐฉ๋ฒ
- var : ๋ณ์๋ฅผ ์ ์ธ. ์ถ๊ฐ๋ก ๋์์ ๊ฐ์ ์ด๊ธฐํ
- let : ๋ธ๋ก ๋ฒ์ ์ง์ญ ๋ณ์๋ฅผ ์ ์ธ. ์ถ๊ฐ๋ก ๋์์ ๊ฐ์ ์ด๊ธฐํ
- const : ๋ธ๋ก ๋ฒ์ ์ฝ๊ธฐ ์ ์ฉ ์์๋ฅผ ์ ์ธ
๋ณ์ (variable)
์ดํ๋ฆฌ์ผ์ด์ ์์ ๊ฐ์ ์์ง์ ์ธ ์ด๋ฆ์ผ๋ก ๋ณ์๋ฅผ ์ฌ์ฉํ๋ค. ๋ณ์๋ช ์ ์๋ณ์๋ผ๊ณ ๋ถ๋ฆฌ๋ฉฐ ํน์ ๊ท์น์ ๋ฐ๋ฅธ๋ค. ์๋ณ์๋ ๋ฌธ์,๋ฐ์ค(_)๋๋ $๋ก ์์ํด์ผ ํ๋ฉฐ, ์ดํ๋ ์ซ์(0-9) ์ผ ์๋ ์๋ค. ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํ๋ฏ๋ก, ๋ฌธ์๋ 'A' ๋ถํฐ 'Z'์ 'a'๋ถํฐ 'z'๊น์ง ๋ชจ๋ ํฌํจํ๋ค.
๋ณ์ ์ ์ธ ๋ฐ ๊ฐ ํ ๋น
- var ํค์๋ : ์ง์ญ ๋ฐ ์ ์ญ ๋ณ์๋ฅผ ์ ์ธํ ๋ ์ฌ์ฉํ๋ค.
- let ํค์๋ : ๋ธ๋ก ๋ฒ์ ์ง์ญ ๋ณ์๋ฅผ ์ ์ธํ๋๋ฐ ์ฌ์ฉํ๋ค.
- ์ง์ ๋ ์ด๊ธฐ๊ฐ ์์ด var ํน์ let๋ฌธ์ ์ฌ์ฉํด์ ์ ์ธ๋ ๋ณ์๋ undefinde ๊ฐ์ ๊ฐ๋๋ค. ์ ์ธ ๋์ง ์์ ๋ณ์์ ์ ๊ทผ์ ์๋ํ๋ ๊ฒฝ์ฐ ReferenceError ์์ธ๊ฐ ๋ฐ์ํ๋ค.
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<link rel="icon" href="data:;base64,iVBORw0KGgo=">
</head>
<body>
<h3>๋ณ์(variable)์ ์ธ</h3>
<script type="text/javascript">
var a = 10,b = 20,c; // ๋ณ์ ์ ์ธ
console.log(c); // undefined ์ด๊ธฐ๊ฐ์ ๋ถ์ฌํ์ง ์๋ ๊ฒฝ์ฐ. ์๋ฌ ์๋.
// c=x+a; // ์๋ฌ(ReferenceError)
c = a + b;
console.log(c); // 30
</script>
</body>
</html>
๋ฒ์
- ์ ์ญ ๋ณ์ : ํจ์์ ๋ฐ๊นฅ์์ ์ ์ธํ ๋ณ์๋ก, ํ์ฌ ๋ฌธ์์ ๋ค๋ฅธ ์ฝ๋์ ํด๋น ๋ณ์๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
- ์ง์ญ ๋ณ์ : ํจ์ ๋ด๋ถ์์ ์ ์ธํ ๋ณ์๋ก, ๋ณ์๋ฅผ ์ ์ธํ ํจ์ ๋ด์์๋ง ์ฌ์ฉํ ์ ์๋ค.
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<link rel="icon" href="data:;base64,iVBORw0KGgo=">
</head>
<body>
<h3>๋ณ์(variable)์ ๋ฒ์</h3>
<script type="text/javascript">
var a = 10; // ์ ์ญ ๋ณ์
function sub() { // ํจ์ ์ ์ธ
console.log(a);
a = a + 30; // ์ ์ญ๋ณ์ a:40
b = 100; // var ๋๋ let๋ฅผ ๋ถ์ด์ง ์์ ๋ณ์๋ ์ ์ญ ๋ณ์
if (true) { // ๋ธ๋ก ์์ ์ ์ธ๋ ๋ณ์
var x = 5;
//var๋ก ์ ์ธํ ๋ณ์์ ๋ฒ์๋ if() ๋ธ๋ก์ด ์๋๋ผ x๊ฐ ์ ์ธ๋ ํจ์์ด๋ค.
}
console.log('x', x)
if (true) {// ๋ธ๋ก ์์ ์ ์ธ๋ ๋ณ์
let y = 10;
//let์ผ๋ก ์ ์ธํ ๋ณ์์ ๋ฒ์๋ ์ ์ธ๋ ๋ธ๋ก์ธ if() ๋ธ๋ก์ด๋ค.
}
// console.log('y',y); ReferenceError ์๋ฌ
}
function fun() {
console.log('sub-a', a); // 40
console.log('sub-b', b); // 100
}
//ํจ์ ํธ์ถ
sub();
fun();
</script>
</body>
</html>
๋ณ์ ํธ์ด์คํ (hoisting)
ํธ์ด์คํธ๋, ๋ณ์์ ์ ์๊ฐ ๊ทธ ๋ฒ์์ ๋ฐ๋ผ ์ ์ธ๊ณผ ํ ๋น์ผ๋ก ๋ถ๋ฆฌ๋๋ ๊ฒ์ ์๋ฏธํ๋ค. ๋ณ์๊ฐ ํจ์ ๋ด์์ ์ ์๋์์ ๊ฒฝ์ฐ ์ ์ธ์ด ํจ์์ ์ต์์๋ก, ํจ์ ๋ฐ๊นฅ์์ ์ ์๋์์ ๊ฒฝ์ฐ๋ ์ ์ญ ์ปจํ ์คํธ์ ์ต์์๋ก ๋ณ๊ฒฝ๋๋ค.
`์๋ฐ์คํฌ๋ฆฝํธ๋ ๋์ค์ ์ ์ธ๋ ๋ณ์๋ฅผ ์ฐธ์กฐํ ์ ์๋ค.'
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<link rel="icon" href="data:;base64,iVBORw0KGgo=">
</head>
<body>
<h3>๋ณ์ - ํธ์ด์คํ
(hoisting)</h3>
<script type="text/javascript">
function sub() {
// console.log(a); //์๋ฌ
//์๋ฐ์คํฌ๋ฆฝํธ๋ ๋์ค์ ์ ์ธํ ๋ณ์๋ฅผ ์ฐธ์กฐํ ์ ์๋ค.
console.log(x); // undefined
var x = 3;
console.log(x); // 3
// ์๋ ์๋์ ์ ์ฌ
var x;
console.log(x);
x = 3;
// console.log(x);
}
sub();
</script>
</body>
</html>
๋ฐ์ดํฐ ํ์
๋ฐ์ดํฐํ | ์๋ฏธ |
Boolean | true์ false |
null | null๊ฐ์ ๋ํ๋ด๋ ํน๋ณํ ํค์๋ |
undfined | ๊ฐ์ด ์ ์ฅ๋์ด ์์ง ์์ ์ต์์ ์์ฑ |
Number | ์ ์ ๋๋ ์ค์ํ ์ซ์ |
String | ๋ฌธ์์ด |
Symbol | ์ธ์คํด์ค๊ฐ ๊ณ ์ ํ๊ณ ๋ถ๋ณ์ธ ๋ฐ์ดํฐํ |
- undefined ์ null : ๋ชจ๋ ์๋ฐ์คํฌ๋ฆฝํธ์์ '๊ฐ์ด ๋น์ด์์'์ ๋ํ๋ธ๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ๊ฐ์ด ์ ์ฅ๋์ง(์ด๊ธฐํ๋์ง)์์ ๋ณ์๋ undefined ํ์ ์ด๋ฉฐ, undefined ํ์ ์ ๋ณ์๋ ๋ณ์ ์์ฒด์ ๊ฐ ๋ํ undefined ์ด๋ค. null์ด๋ ๋น ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ๋ ํน๋ณํ ๊ฐ์ด๋ค. ๊ฐ๋ฐ์๊ฐ ๋ช ์์ ์ผ๋ก ๊ฐ์ด ๋น์ด์์์ ๋ํ๋ด๋๋ฐ ์ฌ์ฉํ๋ค. ์ฃผ์ํ ์ ์ null ํ์ ์ ๋ณ์๋ typeof๊ฒฐ๊ณผ๊ฐ null์ด ์๋๋ผ object์ด๋ค.
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<link rel="icon" href="data:;base64,iVBORw0KGgo=">
</head>
<body>
<h3>๋ฐ์ดํฐ ํ์
</h3>
<script type="text/javascript">
var a,b;
a='์๋ฐ'; // string - ๋ฌธ์์ด
b=typeof(a);
console.log(b);
a=100; //number -์ซ์
b=typeof(a);
console.log(b);
a=10.5; //number -์ซ์
b=typeof(a);
console.log(b);
a=true; // boolean - ๋
ผ๋ฆฌํ
b=typeof(a);
console.log(b);
a=function(){}; // boolean - ๋
ผ๋ฆฌํ
b=typeof(a);
console.log(b);
b={}; //object - ๊ฐ์ฒด
b=typeof(b);
console.log(b);
a=null; // object - ๊ฐ์ฒด
b=typeof(a);
console.log(b);
var x;
b=typeof(x); // undefined ํ์
๊ฐ์ด ์ด๊ธฐํ ๋์ง ์์ ๋ณ์
console.log(b); // undefined
console.log(x); // undefined
b=typeof(y);// undefined ํ์
- ์ ์ ํ์ง ์์ ๋ณ์
console.log(b);
</script>
</body>
</html>
'๐ป > Javascript' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
(47) [JavaScript] 3์ผ JavaScript ๋ด์ฅ๊ฐ์ฒด (0) | 2024.04.23 |
---|---|
(47) [JavaScript] 3์ผ JavaScript ํจ์&์์ธ์ฒ๋ฆฌ (0) | 2024.04.22 |
(46) [JavaScript] 2์ผ JavaScript ๊ธฐ๋ณธ ๋ด์ฅ ํจ์ (1) | 2024.04.19 |
(46) [JavaScript] 2์ผ JavaScript ๊ธฐ๋ณธ - 2 (0) | 2024.04.19 |
(45) [JavaScript] 1์ผ JavaScript ๊ธฐ์ด (0) | 2024.04.18 |