๐JavaScript
- ํ๋กํ ํ์ ๊ธฐ๋ฐ์ ์คํฌ๋ฆฝํธ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ก ๊ฐ์ฒด์งํฅ ๊ฐ๋ ์ ์ง์ํ๋ค.
- ์น ๋ธ๋ผ์ฐ์ ๊ฐ JavaScript๋ฅผ HTML๊ณผ ํจ๊ป ๋ค์ด๋ก๋ํ์ฌ ์คํํ๋ค.
- ์น ๋ธ๋ผ์ฐ์ ๊ฐ HTML ๋ฌธ์๋ฅผ ์ฝ์ด ๋ค์ด๋ ์์ ์ JavaScript Engine์ด ์คํ๋๋ค.
- ๋๋ถ๋ถ์ JavaScript Engine์ ECMAScript ํ์ค์ ์ง์ํ๋ค.
*JavaScript์ ์ ์ธ
<script> ํ๊ทธ๋ HTML ํ์ผ ๋ด๋ถ์ <head>๋ <body> ์ด๋ ๊ณณ์์๋ ์ ์ธ ๊ฐ๋ฅํ์ง๋ง, ์ผ๋ฐ์ ์ผ๋ก <body>์์ ๋๋ถ๋ถ์ <script> ํ๊ทธ๋ฅผ ๋ ๊ฒ์ ๊ถ์ฅํ๋ค. ๊ทธ ์ด์ ๋ <head> ์์ ์์นํ Javasciprt๋ ๋ธ๋ผ์ฐ์ ์ ๊ฐ์ข ์ /์ถ๋ ฅ ๋ฐ์ ์ด์ ์ ์ด๊ธฐํ๋์ง๋ง, <body>์์ ์์นํ๋ฉด ๋ธ๋ผ์ฐ์ ๊ฐ HTML๋ถํฐ ํด์ํ์ฌ ํ๋ฉด์ ๊ทธ๋ฆฌ๊ธฐ ๋๋ฌธ์ ์ฌ์ฉ์๊ฐ ๋น ๋ฅด๋ค๊ณ ๋๋ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค.
<srcipt src="./main.js" type="text/javascript"></script> ⇒ type="text/javascript"๋ text์ง๋ง javascript๋ก ํด์ํด์ค
โWindow, DOM, BOM, ๊ทธ๋ฆฌ๊ณ JavaScript
Window๊ฐ์ฒด๋ JavaScript์ ์ต์์ ๊ฐ์ฒด์ด์ ์ ์ญ ๊ฐ์ฒด์ด๋ฉด์ ๋ชจ๋ ๊ฐ์ฒด๊ฐ ์์๋ ๊ธ๋ก๋ฒ ๊ฐ์ฒด์ด๋ค. ์ด๋, Window ๊ฐ์ฒด์ ๊ตฌ์กฐ๋ ๋ค์๊ณผ ๊ฐ๋ค.
DOM(Document Object Model)์ ๋ธ๋ผ์ฐ์ ๊ฐ ์น ๋ฌธ์๋ฅผ ์ดํดํ ์ ์๋๋ก ๊ตฌ์ฑ๋ ๊ฒ์ผ๋ก HTML ์์๋ฅผ ํ์ฑํ์ฌ ๊ตฌ์ฑ๋๋ค. HTML๊ณผ JavaScript๋ฅผ ์ฐ๊ฒฐํด์ฃผ๋ ์์ํ๊ณ ๋ ํ ์ ์์ผ๋ฉฐ, Javascript๋ฅผ ์ด์ฉํ์ฌ ๊ฐ ์์์ ์ ๊ทผํ ์ ์๋ค. BOM(Browser Object Model)์ Javascript๊ฐ ๋ธ๋ผ์ฐ์ ์ ์ํตํ๊ธฐ ์ํด์ ๋ง๋ค์ด์ง ๋ชจ๋ธ๋ก, navigator, location,
- document, history ๋ฑ์ด ์ด์ ํด๋น๋๋ค.
- location: url์ ๋ํ ์ ๋ณด๋ฅผ ์ ๊ณต
- document: ํ์ฌ ๋ฌธ์์ ๋ํ ์ ๋ณด ์ ๊ณต
- navigator: ๋ธ๋ผ์ฐ์ ์ ์ ๋ณด ์ ๊ณต
- history: ๋ธ๋ผ์ฐ์ ์ ๋ฐฉ๋ฌธ ๊ธฐ๋ก ์ ๋ณด ์ ๊ณต
- screen: ๋ธ๋ผ์ฐ์ ์ธ๋ถ ํ๊ฒฝ์ ๋ํ ์ ๋ณด ์ ๊ณต
https://velog.io/@imok-_/JavaScript-DOM-BOM-%EC%9D%B4%EB%9E%80
๐๋ณ์
- JavaScript๋ ๋ณ์๋ฅผ ์ ์ธํ ๋ ํ์ ์ ๋ช ์ํ์ง ์๊ณ var keyword๋ฅผ ์ฌ์ฉํ์ฌ ์ ์ธ
- JavaScript๋ ๋์ ํ์ ์ธ์ด. ๋ณ์์ ํ์ ์ง์ ์์ด ๊ฐ์ด ํ ๋น๋๋ ๊ณผ์ ์์ ์๋์ผ๋ก ๋ณ์์ ํ์ ์ด ๊ฒฐ์ → ๊ฐ์ ๋ณ์์ ์ฌ๋ฌ ํ์ ์ ๊ฐ์ ํ ๋นํ ์ ์๋ค.
- JavaScript๋ EDMAScript ํ์ค์ ๋ฐ๋ผ ๋ํ ํ๊ธฐ๋ฒ(Camel case)๋ฅผ ์ฌ์ฉํ๋ค.
- ํค์๋, ๊ณต๋ฐฑ ๋ฌธํ ํฌํจ, ์ซ์๋ก ์์ X
- ํน์ ๋ฌธ์๋ _์ $ ํ์ฉ
*๋ํ ํ๊ธฐ๋ฒ(Camel case)
์ฌ๋ฌ ๋จ์ด๊ฐ ๊ฒฐํฉ๋ ๊ฒฝ์ฐ ๊ฐ ๋จ์ด์ ์ฒซ ๊ธ์๋ฅผ ๋๋ฌธ์๋ก ์ฐ๊ณ ๋๋จธ์ง ๊ธ์๋ ์๋ฌธ์๋ก ์ฐ๋ ๋ฐฉ์
์: camelCaseExample
๐์๋ฃํ
- JavaScript์์๋ ์๋ฃํ์ ์์ํ์ ๊ณผ ๊ฐ์ฒดํ์ ์ผ๋ก ๋ถ๋ฅํ๋ฉฐ, ์์ ํ์ ์๋ ์ซ์, ๋ฌธ์์ด, boolean, null, undefined์ ๊ฐ์ด 5๊ฐ์ง๊ฐ ์๋ค.
- ์ซ์: JavaScript๋ ์ซ์๋ฅผ ์ ์์ ์ค์๋ก ๋๋์ด ๊ตฌ๋ถํ์ง ์๋๋ค.
- ์ซ์์ ์ฐ์ฐ ์ฒ๋ฆฌ์ ์ค์ ํํ๋ก ์ด๋ฃจ์ด์ง๊ธฐ ๋๋ฌธ์ ํน์ ์์์ ์ ์ ํํ๊ฒ ํํํ์ง ๋ชปํ๋ค.
- JavaScript๋ ์ธ๋ํ๋ก์ฐ, ์ค๋ฒํ๋ก์ฐ, 0์ผ๋ก ๋๋๋ ์ฐ์ฐ์ ๋ํด์ ์์ธ๋ฅผ ๋ฐ์์ํค์ง ์๋๋ค.
- ์ซ์์ ๊ด๋ จ๋ ํน๋ณํ ์์ ์กด์ฌ
- Infinity: ๋ฌดํ๋
- NaN(Not a Number): ๊ณ์ฐ์์ ๊ฒฐ๊ณผ๊ฐ ์ซ์๊ฐ ์๋์ ๋ํ๋ด๋ ์์
- ๋ฌธ์์ด
- ๋ฌธ์์ ๋ฌธ์์ด์ ๋ฐ๋ก ๊ตฌ๋ถํ์ง ์๋๋ค.
- ์์ ๋ฐ์ดํ ๋๋ ํฐ ๋ฐ์ดํ ๋๋ค ์ฌ์ฉ ๊ฐ๋ฅ + ๋ฐฑํฑ(``)
- boolean
- ๋น์ด ์๋ ๋ฌธ์์ด, null, undefined, ์ซ์ 0์ false๋ก ๊ฐ์ฃผ๋๋ค.
- null์ ๊ฐ์ด ์๊ฑฐ๋ ๋น์ด์์์ ๋ปํ๊ณ , undefined๋ ๊ฐ์ด ์ด๊ธฐํ๋์ง ์์์์ ์๋ฏธํ๋ค.
๐ํธ์ด์คํ
ํธ์ด์คํ ์ด๋ var ์ ์ธ๋ฌธ๊ณผ ํจ์ ์ ์ธ๋ฌธ์ด ํด๋น scope์ ์ต์๋จ์ผ๋ก ๋์ด์ฌ๋ ค์ง๋ ํ์์ด๋ค. ์ฆ, ์ด ๊ฒฝ์ฐ ์ ์ธ๋ฌธ์ด ์ ์ธ๋๊ธฐ ์ด์ ์ ์ฐธ์กฐ๊ฐ ๊ฐ๋ฅํด์ง๋ค.
Javascript์์ ๋ณ์์ ์์ฑ์ ๋ค์๊ณผ ๊ฐ์ ๊ณผ์ ์ ๊ฑฐ์น๋ค.1. ์ ์ธ ๋จ๊ณ: ๋ณ์ ๊ฐ์ฒด์ ๋ณ์๋ฅผ ๋ฑ๋กํ๋ค.2. ์ด๊ธฐํ ๋จ๊ณ: ๋ณ์ ๊ฐ์ฒด์ ๋ฑ๋ก๋ ๋ณ์๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ํ ๋นํ๊ณ , undefined๋ก ์ด๊ธฐํ๋๋ค3. ํ ๋น ๋จ๊ณ: undefined๋ก ์ด๊ธฐํ๋ ๋ณ์๊ฒ ์ค์ ๊ฐ์ ํ ๋นํ๋ค.
⇒1,2 ๋จ๊ณ๋ ํ๊บผ๋ฒ์ ์ด๋ฃจ์ด์ง
console.log(num); //undefind; → Hoisting
var num = 123;
console.log(num); //123
{
var num = 456;
}
console.log(num); //456
//→ num์ ์ ์ญ ๋ณ์์ด๋ฏ๋ก ์ ์ญ์ ์ ์ธํ ๋ณ์ num์ ๋๋ฒ์งธ num์ด ์ฌํ ๋น๋๊ธฐ ๋๋ฌธ์ 456๋ฅผ ๊ฐ๋๋ค.
//ํด๊ฒฐ์ฑ
: let, const
โ๋ณ์ ํธ์ด์คํ ๊ณผ ํจ์ ํธ์ด์คํ
- ํจ์ ์ ์ธ๋ฌธ์ผ๋ก ์ ์๋ ํจ์๋ JavaScript ์์ง์ด ์คํฌ๋ฆฝํธ๊ฐ ๋ก๋ฉ๋๋ ์์ ์ ์ด๋ฅผ ๋ณ์๊ฐ์ฒด์ ์ ์ฅํ๋ค. ํจ์ ์ ์ธ, ์ด๊ธฐํ, ํ ๋น์ด ํ๋ฒ์ ์ด๋ฃจ์ด์ง๋ค.
var result = plus(5,7);
console.log(result);
function plus(num1, num2) {
return num1 + num2;
}
- ๋จ, ํจ์ ํํ์์ ๊ฒฝ์ฐ ํจ์ ํธ์ด์คํ ์ด ์๋๋ผ ๋ณ์ ํธ์ด์คํ ์ด ๋ฐ์ํ๋ค.
var result = plus(5,7);
console.log(result);
var plus = function(num1, num2) {
return num1 + num2;
}
โป์์
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<script>
/**
* ์ ์ธ์ ํจ์
* function ํจ์๋ช
(์ธ์๋ค){}
*
* ํํ์(์ต๋ช
) ํจ์ - ๋ณ์, ์ธ์, ๋ฆฌํด์ผ๋ก ํ์ฉ
* function(){}
*/
test1();
//test2(); //๋ณ์ ํธ์ด์คํ
์ด๋ฏ๋ก undefined๋ก ์ด๊ธฐํ ๋์ด ์์ด error ๋ฐ์
function test1(){
console.log('test1 ํธ์ถ๋จ');
}
var test2 = function(){
console.log('test2 ํธ์ถ๋จ');
}
console.log(window);
</script>
<body>
</body>
</html>
๐==์ฐ์ฐ์์ ===์ฐ์ฐ์์ ์ฐจ์ด
===๋ ํ์ ์ด ํฌํจ๋๋ค.
๐JavaScript ๊ฐ์ฒด
- ๊ฐ์ฒด๋ ์ด๋ฆ๊ณผ ๊ฐ์ผ๋ก ๊ตฌ์ฑ๋ ํ๋กํผํฐ(Property)๋ค์ ์งํฉ
- ์ ์ญ ๊ฐ์ฒด๋ฅผ ์ ์ธํ JavaScript ๊ฐ์ฒด๋ ํ๋กํผํฐ๋ฅผ ๋์ ์ผ๋ก ์ถ๊ฐํ๊ฑฐ๋ ์ญ์ ํ ์ ์๋ค.
- JavaScript์ ํจ์๋ ์ผ๊ธ ๊ฐ์ฒด์ด๋ฏ๋ก ๊ฐ์ผ๋ก ์ฌ์ฉํ ์ ์๋ค. ๋ฐ๋ผ์ ํ๋กํผํฐ์ ๊ฐ์ผ๋ก ํจ์๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
let empty_object = {}
let member = {
"user_name": "์คํค์ง",
age: 20,
city: "์์ธ",
};
//๊ฐ์ฒด์ ์์ฑ์ ์ ๊ทผ
console.log(member.age); //1. dot ํ๊ธฐ๋ฒ
console.log(member["age"]); //2. [] ํ๊ธฐ๋ฒ
//์์ฑ๋ช
์ ์ฐ์ฐ์๊ฐ ํฌํจ๋ ๊ฒฝ์ฐ [] ํ๊ธฐ๋ฒ๋ง ์ ๊ทผ ๊ฐ๋ฅ
console.log(member["user-name"]); //์คํค์ง
console.log(member.user-name); //NaN
console.log(member.classNum); //undefined
console.log(member.classNum || 10); //10
console.log(member.classNum || 10); //10
//→member.classNum์ด ์กด์ฌํ๋ฉด ๊ทธ ๊ฐ์ ์ถ๋ ฅํ๊ณ , ์กด์ฌํ์ง ์์ผ๋ฉด ๋์ ์ 10์ ์ถ๋ ฅํ๋ ์ฝ๋, ์ด๋ ๋ณ์๊ฐ ์กด์ฌํ์ง ์๊ฑฐ๋ ๋น์ด ์์ ๋ ๊ธฐ๋ณธ๊ฐ์ ์ค์ ํ๋ ์ผ๋ฐ์ ์ธ JavaScript์ ์ฌ์ฉ ํจํด ์ค ํ๋
๐๋ฐฐ์ด
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script>
/*
๋ฐฐ์ด
- ํ๋์ ๋ณ์์ ์ฌ๋ฌ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅ
- length ์์ฑ์ด ์๊ณ ๋ฐฐ์ด์ ๊ธธ์ด๋ฅผ ๋ํ๋ธ๋ค.
- index๋ 0๋ถํฐ ์์ length - 1๊น์ง ์ ๊ทผ
- ๋ฐฐ์ด์ ์ฌ์ด์ฆ๋ ๊ณ ์ ๋์ด ์์ง ์๋ค.
- ๋ค์ํ ํ์
์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ์ ์๋ค.
- ์ ์ธ ๋ฐฉ๋ฒ
1. ๋ณ์๋ช
= [๊ฐ, ...];
2. ๋ณ์๋ช
= new Array();
*/
var a1 = [0,1];
var a2 = new Array();
console.log('a1์ ๊ธธ์ด:', a1.length);
console.log('a2์ ๊ธธ์ด:', a2.length);
//๋ฐฐ์ด์ ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐ
//๋ณ์[index] = ๊ฐ //ํด๋น index์ ๋ฐ์ดํฐ๊ฐ ์์ผ๋ฉด ์ถ๊ฐ
//๋ณ์.push(๊ฐ) //๋งจ ๋์ ์ถ๊ฐ๋จ.
a1.push(2);
a1[5]=5;
console.log('๋ฐ์ดํฐ ์ถ๊ฐํ a1: ', a1);
console.log(a1[3]); //3๋ฒ์งธ index๋ ์ด๊ธฐํ๊ฐ ๋์ง ์์ undefined
//1. ๋ฐฐ์ด ์์ ์ญ์
//1. pop()
// - ๋ฐฐ์ด์ ๋ง์ง๋ง ์์๋ฅผ ์ญ์ ํ ์ญ์ ํ ์์๋ฅผ ๋ฆฌํดํ๋ค.
// - ๋ฐฐ์ด์ ์ญ์ ํ ์์๊ฐ ์๋ ๊ฒฝ์ฐ undefined
console.log(a1.pop());
console.log(a2.pop());
//2. shift()
// - ๋ฐฐ์ด์ ์ฒซ๋ฒ์งธ ์์๋ฅผ ์ญ์ ํ ์ญ์ ํ ์์๋ฅผ ๋ฆฌํดํ๋ค.
// - ๋ฐฐ์ด์ ์ญ์ ํ ์์๊ฐ ์๋ ๊ฒฝ์ฐ undefined
console.log(a1.shift());
console.log(a2.shift());
//3. delete ๋ณ์๋ช
[index]: index๋ฒ์งธ ์์๋ฅผ ์ญ์ ,
// ํด๋น ์์๊ฐ ์์ด๋ error๊ฐ ๋ฐ์ํ์ง ์๋๋ค.
delete a1[5]; //5๋ฒ์งธ ์์๊ฐ ์์ง๋ง ์ค๋ฅ๊ฐ ๋ฐ์ํ์ง ์๋๋ค.
//4. splice(startIdx, len): ์์ index๋ถํฐ ์ง์ ํ ๊ฐ์๊น์ง ์ญ์ ํด์ ๋ฆฌํด
var a3 = [1,2,3,4,5];
var a4 = a3.splice(1,2);
console.log('a3: ', a3);
console.log('a4: ', a4);
//5. filter(ํจ์)
var a5 = [1,2,3,4,5,6];
//์ง์๋ง ์ถ์ถ
var evens = a5.filter(function(data){return data%2===0 })
console.log('evens: ',evens);
//6. sortํจ์
a5.sort(function(a,b){return b-a;})
console.log('a5:',a5);
var a6 = [1, 'hello', 3.14, [1,2,3]];
</script>
</head>
<body>
</body>
</html>
'HTML+CSS+JavaScript > JavaScript' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ES6+ (0) | 2024.11.01 |
---|