λ³μ μ μΈνκΈ°
var
let
const
- ES6(ESCMAScript 2015)
- block-scoped(ν¨μ, μ μ΄λ¬Έ)
- μ€λ³΅ μ μΈ λΆκ°λ₯
- μμ(final λ³μ)
function m3() {
alert(a); //undefined
var a = 10; // λ³μ μ μΈλ¬Έ = var a -> μ΄κ±°λ§ μλΌμ alert μλ‘ κ°μ Έκ°λ€. -> κ°μ΄ μλ€.
}
//μμ κ°λ€.
function m3() {
var a;
alert(a);
a = 10;
}
λ©΄μ μμ λ¬Όμ΄λ³Έλ€.
m2();
function m2() {
alert("m2");
}
μ΄λ κ² μ μΈν΄λ μ€νμ΄ λλ μ΄μ λ?
-> νΈμ΄μ€ν
μ΄ λκΈ° λλ¬Έμ΄λ€.
λ΄μ₯ κ°μ²΄
BOM κ°μ²΄
DOM κ°μ²΄
μ¬μ©μ μ μ κ°μ²΄
JavaScriptμ λͺ¨λ κ°μ²΄λ νλ‘νΌν°λ₯Ό μμ λ‘κ² μΆκ°/μμ κ° κ°λ₯νλ€.
const lee = new Object();
lee.name = "μ΄μμ ";
lee.age = 25;
lee.addres = "μμΈμ κ°λꡬ νλ©λ";
const park = {
name: "λ°λ¬Έμ",
age: 40,
address: "νμ",
};
//----------------------------------
const address = {
si: "μμΈμ",
gu: "κ°λ¨κ΅¬",
dong: "λμΉλ",
};
const you = {
name: "μ μ¬μ",
age: 30,
address: address,
};
// μμ κ°λ€.
const you = {
name: "μ μ¬μ",
age: 30,
address: (address = {
si: "μμΈμ",
gu: "κ°λ¨κ΅¬",
dong: "λμΉλ",
}),
};
// κ°μ²΄μ λ©μλλ λ£μ μ μλ€.
const yang = {
name: "μμΈμ°¬",
age: 25,
hello: m1,
};
function m1() {
alert("μλ
νμΈμ.");
}
yang.hello();
//ν¨μ μ μΈλ¬Έ
function m1() {
alert("m1");
}
m1();
//ν¨μ ννμ
let f2 = function () {
alert("μ΅λͺ
ν¨μ");
};
f2();
//1. κ°λ
μ± ν₯μ
//2. κ°λ
μ± ν₯μ -> ν΄λΉ ν¨μμ μ©λλ₯Ό λ²μ΄λ μ¬μ©μ΄ μλ€.
// μλκ° λ³΄νΈμ μΈ μ¬μ©
document.getElementById("btn2").onclick = function () {
alert("btn2");
};
// let temp = m8();
// temp();
// μμ κ°λ€.
m8()();
JavaScriptμ μ μ λ³μμ λͺ¨λ ν¨μλ μλμΌλ‘ window κ°μ²΄μ νλ‘νΌν°κ° λλ€.
var a1 = "νκΈΈλ"; //μ μ λ³μ > λ³μ(X), νλ‘νΌν°(O)
let a2 = "ννν"; // window νλ‘νΌν°(X)
const a3 = "νΈνΈνΈ"; // window νλ‘νΌν°(O)
μΈλΆ ν¨μμ μ§μ λ³μλ₯Ό λ΄λΆ ν¨μμμ μ¬μ©ν λ
let name = "νκΈΈλ";
let age = 20;
console.log(`μ΄λ¦μ ${name}μ΄κ³ , λμ΄λ ${age - 1}μΈμ
λλ€.`);
// μν° κ°λ₯
let temp = `
νλ
λ
μ
`;
console.log(temp);
μ΅μμ νκ·ΈλΆν° νμ νκ·ΈκΉμ§ λ΄λ €κ°λ κ²
ex) html -> body -> div
νμνκ·ΈλΆν° μ΅μμ νκ·ΈκΉμ§ μ¬λΌκ°λ κ²
ex) div -> body -> html
μ΄λ²€νΈ λ²λΈλ§μ μ¬κΈ°μ μ€λ¨ν΄λΌ! > λ μ΄μμ μ΄λ²€νΈκ° μλ€.
event.cancelBubble = true;
windowμ ν€ μ΄λ²€νΈ > λͺ¨λ μν©μ λ λ°μ
μ무μκ²λ ν¬μ»€μ€κ° μλ€λ©΄ windowκ° κ°μ§κ³ μλ€κ³ μκ°νμ.
// κΈ°λ³Έ -> μ΄λ²€νΈ λ²λΈλ§ λ°©μ
p1.addEventListener("click", () => {
alert("λΉ¨κ°");
});
// true -> μ΄λ²€νΈ ν°λλ§ λ°©μ
p1.addEventListener(
"click",
() => {
alert("λΉ¨κ°");
},
true
);
λΆλͺ¨μμμ΄ κ²Ήμ³μμ λ μ΄λ€ μ΄λ²€νΈλ₯Ό λ¨Όμ ν μ§ μκ°νκ³ μ¬μ©νλ€.
-> μ΄λ²€νΈ λ°μμ κ΄λ ¨λ κ³μΈ΅ μ€ μ΅νμ κ°μ²΄(μ ν΄ κ°μ²΄)
event.target = μ ν΄κ°μ²΄. ν°λλ§μ΄ λλκ³ λ²λΈλ§μ΄ λ°μνλ κ°μ²΄.
event.target.bgColor = "gold";
-> νμ¬ νκ²μ΄ μνλ λμκ³Ό μΌμΉνλ κ²½μ° μ¬μ©
event.currentTarget.bgColor = "gold";
-> μμ νκ²κ³Ό λ€λ₯Έ λμμΌ λ μ λ°ν νμ¬ νκ²μ λ°μμ¨λ€.
tr[i].bgColor = "gold";
-> λκΈ΄ νλλ° μ΄κ±°λ μ¬μ© κΈμ§
//κΈ°μ‘΄ μ΄λ―Έμ§ μ κ±°
event.currentTarget.removeChild(
event.currentTarget.firstElementChild
);
//μ μ΄λ―Έμ§ μΆκ°
let img = document.createElement("img");
img.setAttribute("src", "../asset/images/rect_icon01.png");
event.currentTarget.appendChild(img);
// ν΄λ¦ν μ΄λ―Έμ§λ₯Ό μμ
//- λΆλͺ¨νκ·Έ.removeChild(μμνκ·Έ)
// event.target.removeChild(event.target.firstElementChild);
// event.target.parentElement.removeChild(event.target);
// λ°λ‘ μ μ½λμ κ°μ
event.currentTarget.removeChild(
event.currentTarget.firstElementChild
);
// μ°ν΄λ¦ λ©λ΄ μ§μ°κΈ°
//<body>
window.oncontextmenu = () => {
return false;
};
μΌλ°μ μΌλ‘λ over/out μ¬μ©
console.log(event.ctrlKey);
console.log(event.shiftKey);
console.log(event.altKey);
const img = document.createElement("img");
if (event.ctrlKey) {
img.setAttribute("src", "../asset/images/rect_icon06.png");
} else {
img.setAttribute("src", "../asset/images/rect_icon07.png");
}
event.target.appendChild(img);
λ°©ν₯ν€ λ¬Έμ μμ
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<style>
#tbl1 {
border: 1px solid black;
border-collapse: collapse;
width: 500px;
height: 500px;
}
#tbl1 td {
border: 1px solid black;
}
</style>
</head>
<body>
<!-- ex50.html -->
<table id="tbl1">
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
</table>
<script>
const list = document.querySelectorAll("#tbl1 td");
let index = 0;
// for (let i = 0; i < list.length; i++) {
// list[i].innerText = i;
// }
list[index].bgColor = "gold";
window.onkeydown = () => {
if (event.keyCode == 37) {
clearBackgroundColor();
index--;
if (index < 0) {
index = list.length - 1;
}
} else if (event.keyCode == 39) {
clearBackgroundColor();
index++;
if (index >= list.length) {
index--;
}
} else if (event.keyCode == 40) {
clearBackgroundColor();
index += 5;
if (index >= list.length) {
index -= 5;
}
} else if (event.keyCode == 38) {
clearBackgroundColor();
index -= 5;
if (index < 0) {
index += 5;
}
}
list[index].bgColor = "gold";
};
function clearBackgroundColor() {
for (let i = 0; i < list.length; i++) {
list[i].bgColor = "transparent";
}
}
</script>
</body>
</html>