JAVASCRIPT_Basic
๐ JAVASCRIPT
๐ Basic
JAVASCRIPT์ด๋ ๋ฌด์์ธ๊ฐ ?
JavaScript๋ ํ๋กํ ํ์
๊ธฐ๋ฐ์ ์คํฌ๋ฆฝํธ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ก ๊ฐ์ฒด์งํฅ ๊ฐ๋
( ๋ช
๋ นํ, ํจ์ํ, ํ๋กํ ํ์
๊ธฐ๋ฐ ) ์ ์ง์ํ๋ค.
์น์ ๊ตฌ์ฑํ๋ ์์( HTML, CSS, JavaScript ) ์ค ์น ๋ธ๋ผ์ฐ์ ์์ ๋์ํ๋ ์ ์ผํ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ด๋ค.
๊ทธ๋ฆฌ๊ณ ๊ฐ๋ฐ์๊ฐ ๋ณ๋์ ์ปดํ์ผ ์์
์ ์ํํ์ง ์๋ ์ธํฐํ๋ฆฌํฐ ์ธ์ด ( ์ฝ๋๋ฅผ ํ ์ค์ฉ ์ฝ์ด ๋ด๋ ค๊ฐ๋ฉฐ ์คํํ๋ ํ๋ก๊ทธ๋จ ) ์ด๋ค.
์น ๋ธ๋ผ์ฐ์ ๋ HTML ( HTML + CSS ) ๊ณผ JS๋ฅผ ๊ฐ์ด ๋ค์ด๋ก๋ ํ๊ณ ๋ธ๋ผ์ฐ์ ์ JavaScript Engine์ด JS๋ฅผ ์คํํ๋ค.
๊ฐ ๋ธ๋ผ์ฐ์ ๋ณ JS ์์ง ( Chrome์ V8 ์์ง ๋ฑ .. )์ ์ธํฐํ๋ฆฌํฐ์ ์ปดํ์ผ๋ฌ์ ์ฅ์ ์ ๊ฒฐํฉํ์ฌ ๋น๊ต์ ์ฒ๋ฆฌ ์๋๊ฐ ๋๋ฆฐ ์ธํฐํ๋ฆฌํฐ์ ๋จ์ ์ ํด๊ฒฐํด์ค๋ค.
JS๋ ๋์ ์ผ๋ก ์ปจํ
์ธ ๋ฅผ ๋ฐ๊พธ๊ณ ์์ง์ด๋ ์ด๋ฏธ์ง๋ ๋ง์ ๋ค๋ฅธ ์ผ๋ค์ ์ํํ๊ฒ ํ๋ ์คํฌ๋ฆฝํธ ์ธ์ด์ด๋ค.
JAVASCRIPT์ ์ ์ธ
HTML์์ JS๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด script tag๋ฅผ ์ฌ์ฉํด์ผ ํ๋ค. src์ type ์์ฑ์ ์ฌ์ฉํด์ JS๋ฅผ ์ ์ธํ๋ค.
- src
์ธ๋ถ์ JSํ์ผ์ HTML๋ฌธ์์ ํฌํจํ ๋ ์ฌ์ฉ ( ์๋ต ๊ฐ๋ฅ ) - type
๋ฏธ๋์ด ํ์ ์ ์ง์ ํ ๋, JS์ฝ๋๋ โtext/javascriptโ๋ก ์ง์
script tag๋ HTML ํ์ผ ๋ด๋ถ์ head ๋ body ์ ์ด๋ ๊ณณ์์ ์ ์ธ ๊ฐ๋ฅํ๋ค.
๊ทธ๋ฌ๋ ๊ถ์ฅ์ body ์์ ๋๋ถ๋ถ์ ๋ ๊ฒ์ ๊ถ์ฅํ๋ค. ์๋ํ๋ฉด ๋ธ๋ผ์ฐ์ ๊ฐ HTML๋ถํฐ ํด์ํ์ฌ ํ๋ฉด์ ๊ทธ๋ฆฌ๊ธฐ ๋๋ฌธ์ ์ฌ์ฉ์๊ฐ ๋น ๋ฅด๋ค๊ณ ๋๋ ์ ์๋ค.
JS ์ฝ๋๋ฅผ HTML ๋ฌธ์ ์์ ํฌํจ
head tag ์ ํฌํจ
<html>
<head>
<meta charset="UTF-8" />
<title>JavaScript ์ ์ธ</title>
<script type="text/javascript">
// ํจ์ ์ ์ธ
function hello(message) {
alert("hello" + message);
}
// ํจ์ ํธ์ถ
hello("javascript !!");
</script>
</head>
<body></body>
</html>
body tag ์ ํฌํจ
body tag์ ๋ง์ง๋ง์ ๋ฃ๋ ๊ฒ์ ๊ถ์ฅํ๋ค.
<html>
<head>
<meta charset="UTF-8" />
<title>JavaScript ์ ์ธ</title>
</head>
<body>
<script type="text/javascript">
// ํจ์ ์ ์ธ
function hello(message) {
alert("hello" + message);
}
// ํจ์ ํธ์ถ
hello("javascript !!");
</script>
</body>
</html>
์ธ๋ถ JS ํ์ผ์ HTML ๋ฌธ์ ์์ ํฌํจ
<html>
<head>
<meta charset="UTF-8" />
<title>JavaScript ์ ์ธ</title>
<script src="hello.js" type="test/javascript"></script>
</head>
<body></body>
</html>
hello.js ์ธ๋ถํ์ผ
function hello(message){
alert('hello' + message);
}
// ํจ์ ํธ์ถ
hello('javascript !!');
JAVASCRIPT ์ฃผ์
JAVA์ ์ฃผ์ ํํ๊ฐ ๊ฐ๋ค.
- ํ ์ค ์ฃผ์
// ํ ์ค ์ฃผ์ ์
๋๋ค.
- ๋ธ๋ก ์ฃผ์
/*
๋ธ๋ก ์ฃผ์
์
๋๋ค.
*/
JAVASCRIPT ๋ณ์
JavaScript๋ ๋์ ํ์
์ธ์ด์ด๋ค.
๊ทธ๋์ ๋ณ์์ ํ์
์ง์ ์์ด ๊ฐ์ด ํ ๋น๋๋ ๊ณผ์ ์์ ์๋์ ๋ณ์์ ํ์
์ด ๊ฒฐ์ ๋๋ค.ย ยป ๊ฐ์ ๋ณ์์ ์ฌ๋ฌ ํ์
์ ๊ฐ์ ํ ๋น ๊ฐ๋ฅ
JavaScript๋ ๋ํ ํ๊ธฐ๋ฒ ( Camel case )๋ฅผ ์ฌ์ฉํ๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ์๋ฌธ์์ธ๋ฐ 2๊ฐ ์ด์์ ๋จ์ด๋ฅผ ์ฌ์ฉํด์ ๋ณ์๋ช
์ ์ง์ ๊ฒฝ์ฐ 2๋ฒ์งธ ๋จ์ด๋ถํฐ ์ฒซ ๊ธ์๋ ๋๋ฌธ์๋ก ํ๊ธฐํ๋ค. ( ex, userName, userAge, isSelected )
๊ธฐ์กด์๋ var ํค์๋๋ง ์กด์ฌํ์๋๋ฐ ECMAScript 6๋ถํฐ๋ let๊ณผ const ํค์๋๊ฐ ์ถ๊ฐ๋์๋ค.
ํค์๋ | ๊ตฌ๋ถ | ์ ์ธ์์น | ์ฌ์ ์ธ |
---|---|---|---|
var | ๋ณ์ | ์ ์ญ ๋ฒ์ | ๊ฐ๋ฅ |
let | ๋ณ์ | ํด๋น ๋ฒ์ | ๋ถ๊ฐ๋ฅ |
const | ์์ | ํด๋น ๋ฒ์ | ๋ถ๊ฐ๋ฅ |
var myName = "jisoo";
var age = 15;
let count = 25;
let name = "jisoo";
let selected = true;
const con = 10;
JAVASCRIPT ์๋ฃํ
์๋ฃํ | typeof ์ถ๋ ฅ ๊ฐ | ์ค๋ช |
---|---|---|
์ซ์ํ | number | ์ ์ or ์ค์ํ |
๋ฌธ์์ดํ | string | ๋ฌธ์, single or double quotation ์ผ๋ก ํ๊ธฐ |
booleanํ | boolean | true or false |
undefined | undefined | ๋ณ์๊ฐ ์ ์ธ ๋์์ง๋ง ์ด๊ธฐํ๊ฐ ๋์ง ์์ ๊ฒฝ์ฐ |
null | object | ๊ฐ์ด ์กด์ฌํ์ง ์์ ๊ฒฝ์ฐ |
undefined๊ฐ var๋ก ๋ณ์๋ฅผ ์ ์ธํ์ ๋ ์ฃผ์ํด์ผํ ๋ถ๋ถ์ด๋ค.
์ด ๋ถ๋ถ์ ๋ฐ์ ๋ณ์ ํธ์ด์คํ
์์ ์ค๋ช
ํ๊ฒ ๋ค.
์๋ฃํ - ์ซ์
์ ์์ ์ค์๋ฅผ ๊ตฌ๋ถํ์ง ์๋๋ค.
๋ชจ๋ ์ซ์๋ฅผ 8 byte ์ค์ ํํ๋ก ์ฒ๋ฆฌ
ํน์ ์์์ ์ ์ ํํ๊ฒ ํํํ์ง ๋ชปํ๋ค.
๊ธฐ๋ณธ ์ฐ์ฐ ๊ธฐํธ๋ ์ผ๋ฐ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ๊ฐ๋ค.
์ธ๋ํ๋ก์ฐ, ์ค๋ฒํ๋ก์ฐ, 0์ผ๋ก ๋๋๋ ์ฐ์ฐ์ ๋ํด ์์ธ๋ฅผ ๋ฐ์์ํค์ง ์๋๋ค.
JS์์๋ ์ซ์์ ๊ด๋ จ๋ ํน๋ณํ ์์๊ฐ ์กด์ฌํ๋ค.
- Infinity
๋ฌดํ๋๋ฅผ ๋ํ๋ด๋ ์์
์ด๋ ํ ์๋ฅผ 0์ผ๋ก ๋๋๊ฑฐ๋ Infinity๋ฅผ ์ด๋ ํ ์๋ก ์ฌ์น์ฐ์ฐํ ๊ฒฐ๊ณผ - NAN ( Not A Number )
๊ณ์ฐ์์ ๊ฒฐ๊ณผ๊ฐ ์ซ์๊ฐ ์๋์ ๋ํ๋ด๋ ์์
// ์ธ๋ํ๋ก์ฐ
console.log(0 / 100); // 0
console.log(-0 / 100); // -0
// ์ค๋ฒํ๋ก์ฐ
console.log(100 / 0); // Infinity
console.log(-100 / 0); // Infinity
console.log(Infinity / 0); // Infinity
console.log(-Infinity / 0); // Infinity
// NAN
console.log(0 / 0); // NAN
console.log(parseInt("1A")); // 1
console.log(parseInt("A")); // NAN
console.log(new Number("1")); // 1
console.log(new Number("1A")); // NAN
์๋ฃํ - ๋ฌธ์์ด
JS์์ ๋ฌธ์์ด์ 16bit์ Unicode ๋ฌธ์๋ฅผ ์ฌ์ฉ
๋ฌธ์ ํ๋๋ฅผ ํํํ๋ char ๊ฐ์ ๋ฌธ์ํ์ ์กด์ฌํ์ง ์๋๋ค. โaโ ๋ ๋ฌธ์์ด๋ก ํํ
์์ ๋ฐ์ดํ, ํฐ ๋ฐ์ดํ ๋ ๋ค ์ฌ์ฉ๊ฐ๋ฅ์ด์ง๋ง ํผ์ฉ ๋ถ๊ฐ๋ฅ
์ด์ค์ผ์ดํ ์ํ์ค( \ )๋ ์ฌ์ฉ ๊ฐ๋ฅ ( ์ค๋ฐ๊ฟ )
๋ฐฑํฑ()์ ์ด์ฉํ์ฌ ๋ฌธ์์ด์ ๋ํ๋ผ ์ ์๋ค ( ์ฝ๋๋ฅผ ๋ณด์ฌ์ฃผ๊ณ ์ถ์ ๊ฒฝ์ฐ( ๋ณ์๋ฅผ ์ ์ ์ ์๋ค ) ๋ฐฑํฑ์ ์ด์ฉํ๋ค. )</strong> ex) var str1=
๋น์ ์ ์ด๋ฆ์ ${name} (${age})์
๋๋ค.`;
var str2= โ๋น์ ์ ์ด๋ฆ์ โ + name + โ(โ + age + โ)์
๋๋ค.โ;
var1์ var2 ์ ๊ฐ๋ค.
console.log("hello"); // hello
console.log('hello'); // hello
console.log("my name is "js""); //m y name is "js"
console.log("hello \nbye"); //hello
//bye
์๋ฃํ - boolean, null, undefined
- boolean์ ๊ฒฐ๊ณผ๊ฐ์ผ๋ก true, false๋ฅผ ๊ฐ๋๋ค.
- ๋น์ด ์๋ ๋ฌธ์์ด, null, undefined, ์ซ์ 0์ false๋ก ๊ฐ์ฃผ
- null์ ๊ฐ์ด ์๊ฑฐ๋ ๋น์ด์์์ ์๋ฏธ
- undefined๋ ๊ฐ์ด ์ด๊ธฐํ ๋์ง ์์์( ์ ์๋์ง ์์ )์ ์๋ฏธ
- null๊ณผ undefined๋ ์๋ฏธ๊ฐ ๋น์ทํ์ง๋ง ๊ฐ์ ํ ๋นํ์ง ์์ ๋ณ์๋ undefined๊ฐ ํ ๋น๋๊ณ ( ์์คํ ๋ ๋ฒจ ), ์ฝ๋์์ ๋ช ์์ ์ผ๋ก ๊ฐ์ด ์์์ ๋ํ๋ผ ๋ ( ํ๋ก๊ทธ๋จ ๋ ๋ฒจ )๋ null์ ์ฌ์ฉํ๋ค.
var name;
var id = null;
var n1 = 10;
var n2 = 20;
console.log(n1 == n2); // false
console.log(name); // undefined ( ๋น์นธ ์ถ๋ ฅ )
console.log(id); // null
์๋ฃํ - ์๋ ํ ๋ณํ ( ๋์ ํ์ดํ, Dynamic Typing )
JS๋ ์๋ฃ ํ์ ๋งค์ฐ ๋์จํ ๊ท์น์ด ์ ์ฉ๋๋ค.
โtypeof ๋ณ์๋ช
โ ์ผ๋ก ๋ณ์์ ์๋ฃํ์ ์ ์์๋ค.
๋์จํ ๊ท์น
var msg = 40;
console.log("message" + msg); // 4040;
console.log("40" - 10); // 30; -> '-'๋ ๋ฌด์กฐ๊ฑด ์ ๋ค๊ฐ ์ซ์์ฌ์ผํ์ง๋ง
console.log("40" + 40); // 4040; -> '+' ๋ ๋ฌธ์์ด๋ผ๋ฆฌ๋ ๋ง์
์ ํด์ค ์ ์๊ธฐ ๋๋ฌธ์ ์๋ ํ ๋ณํ์ด ์๋๋ค.
console.log(parseInt(124.45) + 1); // 125
console.log(parseFloat(124.45) + 1); // 125.45
console.log("1.1" + "1.1"); // 1.11.1
console.log("+1.1" + "+1.1"); // 2.2 -> ์์ '+'๊ฐ ์์๋ผ๋ ์๋ฏธ๋ฅผ ๊ฐ์ง๋ค.
console.log("message " + msg); // message 40
msg = "hello";
console.log(msg); // hello
typeof ์๋ฃํ
var test;
console.log(typeof test); // undefined
test = null;
console.log(typeof test); // object
test = {};
console.log(typeof test); // object
test = 3;
console.log(typeof test); // number
test = 3.14;
console.log(typeof test); // number
test = "TEST";
console.log(typeof test); // string
test = true;
console.log(typeof test); // boolean
JAVASCRIPT ๋ณ์ ํธ์ด์คํ ( Variable Hoisting )
var ํค์๋๋ฅผ ์ฌ์ฉํ ๋ณ์๋ ์ค๋ณตํด์ ์ ์ธ์ด ๊ฐ๋ฅํ๋ค.
ํธ์ด์คํ
์ด๋ var ์ ์ธ๋ฌธ์ด๋ function ์ ์ธ๋ฌธ ๋ฑ ๋ชจ๋ ์ ์ธ๋ฌธ์ด ํด๋น ๋ฒ์์ ์ฒ์์ผ๋ก ์ฎ๊ฒจ์ง ๊ฒ์ฒ๋ผ ๋์ํ๋ ํน์ฑ์ด๋ค.
์ฆ JS๋ ๋ชจ๋ ์ ์ธ๋ฌธ์ด ์ ์ธ๋๊ธฐ ์ด์ ์ ์ฐธ๊ณ ๊ฐ ๊ฐ๋ฅํ๋ค.
๋ณ์์ ์์ฑ
์ ์ธ ๋จ๊ณ์ ์ด๊ธฐํ ๋จ๊ณ๋ ํ ๋ฒ์ ์ด๋ฃจ์ด์ง๋ค.
-
์ ์ธ ๋จ๊ณ
๋ณ์ ๊ฐ์ฒด์ ๋ณ์๋ฅผ ๋ฑ๋กํ๋ค. -
์ด๊ธฐํ ๋จ๊ณ
๋ณ์ ๊ฐ์ฒด์ ๋ฑ๋ก๋ ๋ณ์๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ํ ๋น. undefined๋ก ์ด๊ธฐํ ๋๋ค. -
ํ ๋น ๋จ๊ณ
undefined๋ก ์ด๊ธฐํ๋ ๋ณ์์ ์ค์ ๊ฐ์ ํ ๋นํ๋ค.
์์
console.log(num); // undefined
var num = 100;
console.log(num); // 100
{
var num = 456;
}
console.log(num); // 456
๋จผ์ ์ ์ผ ์ฒซ ์ค์ธ console.log(num);์ error ๊ฐ ๋ฐ์ํ ๊ฒ ๊ฐ์ง๋ง ์ฝ์์๋ undefined๊ฐ ์ถ๋ ฅ๋๋ค. ๊ทธ ์ด์ ๋ ๋ชจ๋ ์ ์ธ๋ฌธ์ Hoisting ๋๊ธฐ ๋๋ฌธ์ด๋ค.
var num = 100; ์ด Hoisting ๋์ด ์ฒซ ์ค ์์ var num; ์ด ์ฎ๊ฒจ์ง ๊ฒ์ฒ๋ผ ๋์ํ๋ค. ์ด ๋ num์๋ undefined๋ก ์ด๊ธฐํ๊ฐ ์ผ์ด๋๋ฉฐ ๋์ค์ var num = 100; ์์ ์ค์ ๋ก num์ 100์ด ํ ๋น๋๋ค.
JS๋ ๋ธ๋ก ๋ ๋ฒจ์ ์ค์ฝํ๊ฐ ์๋ ํจ์ ๋ ๋ฒจ ์ค์ฝํ๋ง ๊ฐ๋๋ค. ๊ทธ๋์ ๊ธฐ์กด ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ผ๋ฉด ๋งจ ๋ง์ง๋ง ์ค์ ์ถ๋ ฅ์ด 100์ด ๋์ด์ผ ํ๋๋ฐ JS์์๋ { } ์์์ ์ ์ธํด์ค 456์ด ์ถ๋ ฅ๋๋ค.
-> ํด๊ฒฐ์ฑ
์ const๋ let์ ์ฌ์ฉํ๋ฉด ๋๋ค.
๊ทธ๋์ ํ์ ๋ณ์ ์ ์ธ์ ํ ๋๋ ์์ฆ์ let์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ถ์ธ์ด๋ค.
var๋ ์ ์ญ ๋ณ์, let,const๋ ์ง์ญ ๋ณ์๋ผ๊ณ ์๊ฐํ๋ฉด ๋๋ค.
JAVASCRIPT ์์ ( constant )
ECMAScript6 ๋ถํฐ ์์ ํํ ์ง์
์์ ํ๊ธฐ๋ฒ์ ๋ชจ๋ ๋ฌธ์๋ฅผ ๋๋ฌธ์๋ฅผ ์ฌ์ฉํ๊ณ ๋จ์ด ์ฌ์ด๋ โ_โ๋ก ํ๊ธฐ
์์๊ฐ์ ๋ณ๊ฒฝํ์ง ๋ชปํ๋ค.
const LIST_COUNT = 10;
const SELECTED = false;
JAVASCRIPT ์ฐ์ฐ์ ( operator )
๊ธฐ์กด JAVA ์ฐ์ฐ์๋ ๊ฑฐ์ ๋น์ทํ๋ค.
๋ค๋ฅธ ๊ฒ ( ๋ง์ด ์ฌ์ฉ ) - ์ฐ์ , ๋น๊ต, ๋
ผ๋ฆฌ, ๊ธฐํ
- delete
ํ๋กํผํฐ๋ฅผ ์ ๊ฑฐ
-in
ํ๋กํผํฐ๊ฐ ์กด์ฌํ๋์ง ํ์ธ ( for๋ฌธ์์ ์ฐ์ธ๋ค )
-
typeof
ํผ์ฐ์ฐ์ ํ์ ์ ๋ฆฌํด -
==
๊ฐ์ด ์ผ์นํ๋์ง ํ์ธ ( ํ์ ๋น๊ต X ) -
!=
๊ฐ์ด ๊ด๊ณํ์ง ์๋์ง ํ์ธ ( ํ์ ๋น๊ต X ) -
===
๊ฐ์ด ์ผ์นํ๋์ง ํ์ธ ( ํ์ ํฌํจ ) -
!==
๊ฐ์ด ๊ด๊ณํ์ง ์๋์ง ํ์ธ ( ํ์ ํฌํจ )
JAVASCRIPT ์กฐ๊ฑด๋ฌธ, ๋ฐ๋ณต๋ฌธ ( conditional, loop )
๊ธฐ์กด JAVA ์ฐ์ฐ์๋ ๊ฑฐ์ ๊ฐ๋ค.
for๋ฌธ
for(var ๋ณ์ in ๋ฐฐ์ด or ๊ฐ์ฒด){
//์คํ๊ตฌ๋ฌธ
//๋ณ์์๋ ๋ฐฐ์ด์ ์ธ๋ฑ์ค
//๊ฐ์ฒด์ ํ๋กํผํฐ ๋ช
์ด ๋ด๊น
}
JAVASCRIPT ๊ฐ์ฒด ( object )
- ๊ฐ์ฒด๋ ์ด๋ฆ๊ณผ ๊ฐ์ผ๋ก ๊ตฌ์ฑ๋ Property ( ํ๋ ( ๋ฐ์ดํฐ ๋ฉค๋ฒ )์ ๋ฉ์๋ ๊ฐ ๊ธฐ๋ฅ์ ์ค๊ฐ์ธ ํด๋์ค ๋ฉค๋ฒ์ ํน์ํ ์ ํ ) ์ ์งํฉ
- ๋ฌธ์์ด, ์ซ์, boolean, null, undefined๋ฅผ ์ ์ธํ ๋ชจ๋ ๊ฐ์ ๊ฐ์ฒด์ด๋ค.
- JS ๊ฐ์ฒด๋ Key ์ Value ๋ก ๊ตฌ์ฑ๋ ํ๋กํผํฐ ๋ค์ ์งํฉ์ด๋ค.
- ์ ์ญ ๊ฐ์ฒด๋ฅผ ์ ์ธํ๊ณ JS ๊ฐ์ฒด๋ ๋์ ์ผ๋ก ์ถ๊ฐํ๊ฑฐ๋ ์ญ์ ๊ฐ๋ฅํ๋ค.
- ํ๋กํผํฐ์ ๊ฐ์ผ๋ก ํจ์๋ฅผ ์ฌ์ฉ ๊ฐ๋ฅํ๋ค.
- JS ๊ฐ์ฒด๋ Prototype ์ด๋ผ๋ ํน๋ณํ ํ๋กํผํฐ๋ฅผ ํฌํจํ๋ค.
๊ฐ์ฒด - ์์ฑ
๊ฐ์ฒด๋ฅผ ์์ฑํ๋ ๋ฐฉ๋ฒ์๋ 3๊ฐ์ง๊ฐ ์๋ค.
๊ฐ์ฒด ๋ฆฌํฐ๋ด, Object ์์ฑ์ ํจ์, ์์ฑ์ ํจ์
๊ฐ์ฒด ๋ฆฌํฐ๋ด
- ๊ฐ์ฅ ์ผ๋ฐ์ ์ธ ๋ฐฉ๋ฒ
- {}๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ์ฒด๋ฅผ ์์ฑ. {} ๋ด์ 1๊ฐ ์ด์์ ํ๋กํผํฐ๋ฅผ ์ถ๊ฐํ์ฌ ๊ฐ์ฒด๋ฅผ ์์ฑ
var student = {
name: "๊น์์ง",
area: "๊ตฌ๋ฏธ",
classNum: 4,
info: function () {
console.log(this.name + "๋" + this.area + this.classNum + "๋ฐ");
},
};
console.log(typeof student); // object
console.log(student); // {name: '๊น์์ง', area: '๊ตฌ๋ฏธ', classNum: 4, info: f}
student.info(); // ๊น์์ง๋ ๊ตฌ๋ฏธ4๋ฐ
Object ์์ฑ์ ํจ์
- new ์ฐ์ฐ์์ Object ์์ฑ์ ํจ์๋ฅผ ํธ์ถํ์ฌ ๋น ๊ฐ์ฒด๋ฅผ ์์ฑ
- ๋น ๊ฐ์ฒด ์์ฑ ํ ํ๋กํผํฐ ๋๋ ๋ฉ์๋๋ฅผ ์ถ๊ฐํ์ฌ ๊ฐ์ฒด๋ฅผ ์์ฑ
var student = new Object();
// property ์ถ๊ธฐ
student.name = "๊น์์ง";
student.area = "๊ตฌ๋ฏธ";
student.classNum = 4;
student.info = function () {
console.log(this.name + "๋" + this.area + this.classNum + "๋ฐ");
};
console.log(typeof student); // object
console.log(student); // {name: '๊น์์ง', area: '๊ตฌ๋ฏธ', classNum: 4, info: f}
student.info(); // ๊น์์ง๋ ๊ตฌ๋ฏธ4๋ฐ
์์ฑ์ ํจ์
- ๋์ผํ ํ๋กํผํฐ๋ฅผ ๊ฐ๋ ๊ฐ์ฒด ์์ฑ ์ ์ ๋ ๋ฐฉ๋ฒ์ ๋์ผํ ์ฝ๋๋ฅผ ๋ฐ๋ณต์ ์ผ๋ก ์์ฑ
- ์์ฑ์ ํจ์๋ฅผ ์ด์ฉํ๋ฉด ํ ํ๋ฆฟ(ํด๋์ค)์ฒ๋ผ ์ฌ์ฉํ์ฌ ํ๋กํผํฐ๊ฐ ๋์ผํ ๊ฐ์ฒด ์ฌ๋ฌ๊ฐ๋ฅผ ๊ฐ๋จํ ์์ฑ ๊ฐ๋ฅ
- ๊ฐ์ฒด ์งํฅ์ ์ธ ํ๋ก๊ทธ๋จ์ ์ด ๋ฐฉ๋ฒ์ด ์ ์ผ ์ ํธ ๋ ๊ฒ ๊ฐ๋ค !! ( ๋ํผ์ )
// ์์ฑ์ ํจ์ - ๋ฐ๋ณต์ ์ธ ๋ถ๋ถ ์ฒ๋ฆฌ
function Student(name, area, classNum) {
this.name = name;
this.area = area;
this.classNum = classNum;
this.info = function () {
console.log(this.name + "๋" + this.area + this.classNum + "๋ฐ");
};
}
// ๊ฐ์ฒด ์์ฑ
var student1 = new Student("๊น์์ง", "๊ตฌ๋ฏธ", 4);
var student2 = new Student("์ด์์ง", "์์ธ", 7);
console.log(typeof student1); // object
console.log(typeof student2); // object
console.log(student1); // {name: '๊น์์ง', area: '๊ตฌ๋ฏธ', classNum: 4, info: f}
console.log(student2); // {name: '์ด์์ง', area: '์์ธ', classNum: 7, info: f}
student1.info(); // ๊น์์ง๋ ๊ตฌ๋ฏธ4๋ฐ
student2.info(); // ์ด์์ง๋ ์์ธ7๋ฐ
๊ฐ์ฒด - ์์ฑ
์์ฑ ๊ฐ ์กฐํ
- ๊ฐ์ฒด๋ dot(.)์ ์ฌ์ฉํ๊ฑฐ๋ ๋๊ดํธ([])๋ฅผ ์ฌ์ฉํด์ ์์ฑ ๊ฐ์ ์ ๊ทผํ๋ค. ๋๊ดํธ ๋ด์ ๋ค์ด๊ฐ๋ ํ๋กํผํฐ ์ด๋ฆ์ ๋ฐ๋์ ๋ฌธ์์ด์ด์ฌ์ผ ํ๋ค.
- ๊ฐ์ฒด์ ์๋ ์์ฑ์ ์ ๊ทผํ๋ฉด undefined๋ฅผ ๋ฐํํ๋ค.
var student = {
name: "๊น์์ง",
area: "๊ตฌ๋ฏธ",
classNum: 4,
};
// ๊ฐ์ฒด ์์ฑ์ด ์ ๊ทผ
console.log(student.classNum); // dot ํ๊ธฐ๋ฒ
console.log(student["classNum"]); // [] ํ๊ธฐ๋ฒ
// ์์ฑ๋ช
์ ์ฐ์ฐ์๊ฐ ํฌํจ๋ ๊ฒฝ์ฐ []๋ง ๊ฐ๋ฅ
console.log(student.name); // NaN
console.log(student["name"]); // ๊น์์ง
์์ฑ ๊ฐ ๋ณ๊ฒฝ, ์ถ๊ฐ, ์ ๊ฑฐ
- ์์ฑ ๊ฐ์ ๋ณ๊ฒฝํ ๋๋ dot(.)๋ ๋๊ดํธ([])๋ฅผ ์ฌ์ฉํ๋ค.
- ๊ฐ์ฒด์ ๊ฐ์ ํ ๋นํ๋ ๊ฒฝ์ฐ ๊ทธ ์์ฑ์ด ์์ ๋ ์์์ ์์ฑ์ด ์ถ๊ฐ๋๋ค.
- delete ์ฐ์ฐ์๋ฅผ ์ด์ฉํ์ฌ ์์ฑ ์ ๊ฑฐ
var student ={
name : '๊น์์ง',
area : '๊ตฌ๋ฏธ',
classNum : 4
};
// ์์ฑ์ ๊ฐ ๋ณ๊ฒฝ
student.classNum = 7;
student['area'] = '์์ธ';
console.log(student.['classNum']); // 7
console.log(student.area); // ์์ธ
// ์์ฑ ์ถ๊ฐ
student.tel = '010-1234-5678';
console.log(student.tel); // 010-1234-5678
// ์์ฑ ์ ๊ฑฐ
delete student.tel;
console.log(student.tel); // undefined
๊ฐ์ฒด - ์ฐธ์กฐ
- ๊ฐ์ฒด๋ ๋ณต์ฌ๋์ง ์๊ณ ์ฐธ์กฐ๋๋ค.
- JS์์ ์์ ( Primitive ) ๋ฐ์ดํฐ ํ์ ์ด ์๋ ๋ชจ๋ ๊ฐ์ ์ฐธ์กฐ ํ์ ์ด๋ค.
- ์ฐธ์กฐ ํ์ ์ Object , Array , Date , Error ๋ฅผ ํฌํจํ๋ค.
- ํ์ ํ์ธ ๋ฐฉ๋ฒ์ผ๋ก๋ typeof๊ฐ ์๋ค. ( null์ ์์ํ์ ์ด์ง๋ง typeof ์ฐ์ฐ์์์ object๋ฅผ ๋ฐํํ๋ค. )
var student = {
name: "๊น์์ง",
area: "๊ตฌ๋ฏธ",
classNum: 4,
};
var x = student;
x.area = "์์ธ";
console.log(x.area); // ์์ธ
๊ฐ์ฒด - ๋ถ๋ฅ
JAVASCRIPT ํจ์ ( function )
JavaScript์์ ํจ์๋ ์ผ๊ธ ๊ฐ์ฒด(first-class)์ด๋ค.
ํจ์๋ฅผ ๋ณ์, ๊ฐ์ฒด, ๋ฐฐ์ด ๋ฑ์ ์ ์ฅํ ์ ์๊ณ ๋ค๋ฅธ ํจ์์ ์ ๋ฌํ๋ ์ธ์ ๋๋ ๋ฆฌํด ๊ฐ์ผ๋ก๋ ์ฌ์ฉ ๊ฐ๋ฅํ๋ค.
ํ๋ก๊ทธ๋จ ์คํ ๋์ค์๋ ๋์ ์ผ๋ก ์์ฑ ๊ฐ๋ฅํ๋ค.
ํจ์ - ์ ์ธ, ํธ์ถ
- ํจ์ ์ ์ธ๋ฌธ
function ํจ์์ด๋ฆ( ๋งค๊ฐ๋ณ์1, ๋งค๊ฐ๋ณ์2 ... ){
// ํจ์ ๋ด์ฉ
}
- ํจ์ ํํ์
var ํจ์์ด๋ฆ = function( ๋งค๊ฐ๋ณ์1, ๋งค๊ฐ๋ณ์2 ... ){
// ํจ์ ๋ด์ฉ
}
- Function ์์ฑ์ ( constructor )
var ํจ์์ด๋ฆ = new Function("๋งค๊ฐ๋ณ์1", "๋งค๊ฐ๋ณ์2" , ... , "ํจ์ ๋ด์ฉ");
- ํจ์ ํธ์ถ
ํจ์์ด๋ฆ(๋งค๊ฐ๋ณ์1, ๋งค๊ฐ๋ณ์2,...);
ํจ์ - ํธ์ด์คํ
- ํจ์ ์ ์ธ๋ฌธ
ํจ์ ์ ์ธ์ ์์น์ ์๊ด์์ด ์ฝ๋ ๋ด ์ด๋ ๊ณณ์์๋ ์ง ํธ์ถ ๊ฐ๋ฅ
ํจ์ ์ ์ธ๋ฌธ์ผ๋ก ์ ์๋ ํจ์๋ ํจ์ ์ ์ธ, ์ด๊ธฐํ, ํ ๋น์ด ํ ๋ฒ์ ์ด๋ฃจ์ด์ง๋ค.
ํจ์ ์ ์ธ๋ฌธ์ผ๋ก ํจ์๋ฅผ ์ ์ํ๋ฉด ์ฌ์ฉํ๊ธฐ ์ฝ์ง๋ง ( ํธ์ด์คํ
์ ์ ๊ฒฝ ์์จ๋ ๋์ด์ ) ๋๊ท๋ชจ application์ ๊ฐ๋ฐํ๋ ๊ฒฝ์ฐ ์ธํฐํ๋ฆฌํฐ๊ฐ ๋๋ฌด ๋ง์ ์ฝ๋๋ฅผ ๋ณ์ ๊ฐ์ฒด์ ์ ์ฅํ๋ฏ๋ก
application์ ์๋ต ์๋๋ฅผ ์ ํ์ํฌ ์ ์๋ค.
-> ์ํฉ์ ๋ง๊ฒ ์ ์ ํํด์ ์ฌ์ฉํ์ !
- ํจ์ ํํ์
ํจ์ ํธ์ด์คํ ์ด ์๋๋ผ ๋ณ์ ํธ์ด์คํ ์ด ๋ฐ์ํ๋ค.
var result = plus(5, 7);
console.log(result);
var plus = function (num1, num2) {
return num1 + num2;
};
// plus ํจ์๊ฐ ๋ฐ์์ ์ ์ธ๋์ด ํธ์ด์คํ
๋ฐ์ -> ์ค๋ฅ ๋ฐ์
ํจ์ - ๋งค๊ฐ๋ณ์
์ธ๋ถ๋ก๋ถํฐ ์ ๋ฌ๋ฐ์ ๋ณ์๋ฅผ ๋งค๊ฐ๋ณ์๋ผ ํ๋ค.
ํ์
์ ๋ช
์ํ์ง ์๋๋ค.
ํจ์๋ฅผ ํธ์ถํ ๋ ์ ์๋ ๋งค๊ฐ๋ณ์์ ์ ๋ฌ์ธ์์ ๊ฐ์๊ฐ ์ผ์นํ์ง ์๋๋ผ๋ ํธ์ถ ๊ฐ๋ฅ
ํจ์ - ์ฝ๋ฐฑ ํจ์
์ค ์ ํ ๋ค !!!
์ฝ๋ฐฑ ํจ์๋ ํจ์๋ฅผ ๋ช
์์ ์ผ๋ก ํธ์ถํ๋ ๋ฐฉ์์ด ์๋ ํน์ ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ์ ๋ ์์คํ
์ ์ํด ํธ์ถ๋๋ ํจ์
์ผ๋ฐ์ ์ผ๋ก ์ฝ๋ฐฑ ํจ์๋ ๋งค๊ฐ๋ณ์๋ฅผ ํตํด ์ ๋ฌ๋๊ณ ์ ๋ฌ๋ฐ์ ํจ์์ ๋ด๋ถ์์ ์ด๋ ํน์ ์์ ์ ์คํ๋๋ค.
์ฃผ๋ก ๋น๋๊ธฐ์ ์ฒ๋ฆฌ ๋ชจ๋ธ์์ ์ฌ์ฉ๋๋ค.
์ฒ๋ฆฌ๊ฐ ์ข
๋ฃ๋๋ฉด ์ฝ๋ฐฑ ํจ์๋ฅผ ๋ฏธ๋ฆฌ ๋งค๊ฐ๋ณ์์ ์ ๋ฌํ๊ณ ์ฒ๋ฆฌ๊ฐ ์ข
๋ฃ๋๋ฉด ์ฝ๋ฐฑ ํจ์๋ฅผ ํธ์ถ
- Event Handler
<button id="btn">click!!</button>
<script type="text/javascript">
var btn = document.getElementById("btn");
btn.addEventListener("click", function () {
// function()์ด ์ฝ๋ฐฑ ํจ์์ด๋ค. ๋ง์ฝ ์ฌ๊ธฐ์ ์ง์ ํจ์๋ฅผ ํธ์ถํ๋ค๋ฉด ์ํ๋ ๊ฐ์ ์ถ๋ ฅ ๋ชปํจ
// ex ) btn.addEventListener('click', view(document.getElementById("test".).value));
// ์ผ๋ฐ ํจ์
// function view(val){
// console.log(val);
//}
// ex) btn ์์ ํจ์ ์ ์ธ์ ๊ฐ๋ฅ
// var callback = function(){
// view(document.getElementById("test".).value));
// }
// btn.addEventListener('click', callback); ์ ์ ์์ ์ผ๋ก ์๋ํ๋ค.
console.log(" ์๋
ํ์ธ์");
});
</script>
- setTimeout()
setTimeout(function () {
console.log("3์ดํ ์คํ๋ฉ๋๋ค. ");
}, 3000);
JAVASCRIPT ๊ธฐ๋ณธ ๋ง๋ฌด๋ฆฌ
JavaScript์ ๊ธฐ๋ณธ์ ์ ๋ฆฌํด ๋ณด์๋ค.
์๋ฐ๋ ๋น์ทํ๋ฉด์๋ ์ข ๋ ํธ๋ฆฌํ ๋ถ๋ถ์ด ๋ ๋ง์ ๊ฒ ๊ฐ๊ธฐ๋ ํ๋ค.( JAVA๋ ๊ด๋ จ์๋ค๋ ์๋ฏธ๊ฐ ์๋๋ค. ๋์ ์ฃผ ์ธ์ด๊ฐ JAVA๊ธฐ ๋๋ฌธ )
HTML๊ณผ CSS์ ๊ฐ์ด ์๋ํ๋ฉฐ ๋ ์์ฑ๋ ์๊ณ ๋์ ์ธ ์น ํ์ด์ง๋ฅผ ๊ตฌํํ๋๋ฐ ํฐ ์ผ์กฐ๋ฅผ ํ๋ ๊ฒ ๊ฐ์ ๋ ํฅ๋ฏธ๊ฐ ๊ฐ๋ ๊ฒ ๊ฐ๋ค. ์ ๋ฆฌํ๋ฉด์๋ ํฌ๊ฒ ์ด๋ ค์ด ๋ถ๋ถ์ด ์์ด์ ์ฝ๊ฒ ์ดํดํ ์ ์์๋ค.
์ด์ JS์ ๋ง์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ํ๋ ์์ํฌ๋ฅผ ์ฌ์ฉํด ๋ณด๋ฉด์ JS๋ฅผ ๋ ์ ๋ค๋ฃฐ์ ์๊ฒ ํด์ผ๊ฒ ๋ค.
๊ทธ๋ฆฌ๊ณ ์ฝ๋ฐฑํจ์์ ๋ํด ์ ์๊ณ ์์ด์ผ ๊ฒ ๋ค !!