JavaScript
ํจ์
โข
ํ์ดํ ํจ์ - function ํค์๋ ์๋ต
โฆ
ํ์ ํ๋จ
function getValue(value) {
return value % 2
}
JavaScript
๋ณต์ฌ
โฆ
์ฝ๋ฐฑ ํจ์๋ฅผ ๋งค๊ฐ๋ณ์์ ๋ฃ์ด์ค ๋ - ๊ฐ๋
์ฑ ์ข์
const fn = (value) => {
return value % 2 == 1
}
JavaScript
๋ณต์ฌ
โข
eval() - ์ฌ์ฉ๋น๋ ๋ฎ์
let codeRun = `
var num11 = 1111;
alert(num11)
`
eval(codeRun)
JavaScript
๋ณต์ฌ
๊ฐ์ฒด
โข
๊ฐ์ฒด (object) โ ์์ฑ + ๋ฉ์๋
โฆ
๊ฐ์ฒด๊ฐ ๊ฐ์ง๊ณ ์๋ ํน์ง์ ์์ฑ์ด๋ผ๊ณ ํ๋ค.
โฆ
๊ฐ์ฒด๋ ๊ธฐ๋ฅ์ ๊ฐ์ง๊ณ ์๋ค.
โช
ex) ์ค๋งํธํฐ
โข
๊ธฐ๋ฅ: ์ ํ๊ฑธ๊ธฐ ๋ฐ ๋ฐ๊ธฐ, ์ปดํจํ
โฆ
๊ฐ์ฒด๋ ๋ฌถ์์ด๋ค โ ๋ณ์์ ํจ์์ ๋ฌถ์
โฆ
์ ๊ณตํ๋ ๊ฐ์ฒด โ ๋ณ์ / ๋ฉ์๋(ํจ์)
โฆ
๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ ค์ ์ฌ์ฉํ ์ ์๋ ์ํ๋ฅผ ๊ฐ์ฒด๋ผ๊ณ ํ๋ค.
โฆ
์ต๊ทผ react๋ ํจ์ ๊ธฐ๋ฐ์ผ๋ก ๋ง๋ฆ
โฆ
๊ฐ์ฒด๊ฐ ๊ฐ์ง๊ณ ์๋ ํจ์ โ ๋ฉ์๋
โฆ
๊ฐ์ฒด ํํ โ {} object
โข
๊ฐ์ฒด ํํ ์์
const menu1 = {
productName: 'Americano', // ์์ฑ์ด๋ฆ : ์์ฑ๊ฐ
price: 3000,
ctgy: 'Coffee'
}
console.log('menu1 > ', menu1)
JavaScript
๋ณต์ฌ
โข
๋ฐฐ์ด โ arr[index]
console.log('์ ํ ์ด๋ฆ >> ', menu1['productName'])
console.log('์ ํ ์ด๋ฆ >> ', menu1.productName)
JavaScript
๋ณต์ฌ
โข
๊ฐ์ฒด์ ์์ฑ์ ๋ณ์์ ๊ฐ์ด ๋ชจ๋ ํ์
์ ์๋ฃํ์ ๊ฐ์ง ์ ์๋ค.
const menu2 = {
productName: 'Americano', // ์์ฑ์ด๋ฆ : ์์ฑ๊ฐ
price: 3000,
ctgy: 'Coffee',
makeCoffee : () => { // ๋ฉ์๋
console.log('์๋ 20g๊ณผ ๋จ๊ฑฐ์ด ๋ฌผ 120ml ์์ด์ ๋ง๋ญ๋๋ค.')
}
}
JavaScript
๋ณต์ฌ
โข
๊ฐ์ฒด์ ๋ฉ์๋ ํธ์ถ
// ๊ฐ์ฒด์ ๋ฉ์๋ ํธ์ถ
menu2.makeCoffee()
JavaScript
๋ณต์ฌ
โข
this: ๊ฐ์ฒด ์์ ์ ๋ฉค๋ฒ ์ฐธ์กฐ, ํ์ฌ๊ฐ์ฒด ์์ ์ ๊ฐ๋ฆฌํด
โฆ
ํ์ดํ ํจ์ ์์๋ this ์ง์ ์ ๋จ
const menu3 = {
productName: 'Americano', // ์์ฑ์ด๋ฆ : ์์ฑ๊ฐ
price: 3000,
ctgy: 'Coffee',
makeCoffee: function() { // ๋ฉ์๋
console.log(`${this.productName}๋ 20g๊ณผ ๋จ๊ฑฐ์ด ๋ฌผ 120ml ์์ด์ ๋ง๋ญ๋๋ค.`)
}
}
JavaScript
๋ณต์ฌ
โข
๊ฐ์ฒด์ ์์ฑ์ ๋์ ์ผ๋ก ์ถ๊ฐ
// ๊ฐ์ฒด์ ์์ฑ์ ๋์ ์ผ๋ก ์ถ๊ฐ
menu3.event = false
console.log(menu3)
if (menu1.event) {
alert('์ด๋ฒคํธ ์ํ์
๋๋ค.')
} else {
alert('์ด๋ฒคํธ ๋ฏธ ๋์ ์ํ!')
}
JavaScript
๋ณต์ฌ
โข
๊ธฐ๋ณธ ์๋ฃํ ๊ฐ์ฒด ์ ์ธ : ์ซ์, ๋ฌธ์์ด, ๋ถ๋ฆฌ์ธ ๊ทธ๋ฆฌ๊ณ ๋ฐฐ์ด
let obj_string = new String(' ์๋
ํ์ธ์ ')
console.log(obj_string, obj_string.length)
console.log(obj_string.trim(), obj_string.trim().length)
let obj_phoneNumber = new String('010-9999-7777')
console.log(obj_phoneNumber.split('-'))
console.log(obj_phoneNumber.replace('-', '.'))
const obj_num = new Number(100.123456)
console.log(obj_num, obj_num.toString())
// ์๋ฆฟ์ ํํ
console.log(obj_num.toFixed(2))
// isNaN() => NaN ํ๋จ, isFinite() => ๋ฌดํ๋ ์ ํ๋ณ
let priNum = 1000
console.log(priNum.toString())
// ๋ฐฐ์ด
let arr1 = [1, 2, 3, 4, 5]
console.log(arr1)
let arr2 = new Array()
console.log(arr2)
let arr3 = new Array(10)
console.log(arr3)
let arr4 = new Array(1, 2, 3, 4, 5)
console.log(arr4)
JavaScript
๋ณต์ฌ
โข
JSON
โฆ
JSON ํ์ฉ ์์
// JSON : JSON ํ์
์ ํ์ ๋ณํ
// object => JSON, JSON => object
// Data => ๊ท๊ฒฉํ
let menu = {
productName : 'americano',
price : 3000,
ctgy : 'coffee'
}
console.log(menu, typeof(menu))
let json_string = JSON.stringify(menu)
console.log(json_string)
console.log(typeof(json_string))
// JSON => Object
let obj_json = JSON.parse(json_string)
console.log(obj_json)
let menus = [
{name : '์๋ฉ๋ฆฌ์นด๋
ธ', price : 3000},
{name : '๋ธ๋ ํฐ', price : 4000},
{name : '๋ฐํฌ', price : 5000}
]
let menus_json = JSON.stringify(menus)
console.log(menus_json)
console.log(JSON.parse(menus_json))
JavaScript
๋ณต์ฌ
โฆ
JSON ๋ฐ์ดํฐ ์์
[
{
"name": "์๋ฉ๋ฆฌ์นด๋
ธ",
"price": 3000
},
{
"name": "๋ธ๋ ํฐ",
"price": 4000
},
{
"name": "๋ฐํฌ",
"price": 5000
}
]
JavaScript
๋ณต์ฌ
โข
๋ฌธ์๊ฐ์ฒด ๋ชจ๋ธ(DOM)
โฆ
<div>test</div> โ object
โฆ
์๋ก์ด ๋ธ๋ผ์ฐ์ window ์์ฑ, feature ์์ฑ ์ง์ ํ๋ฉด ์ ์ฐฝ์ด ๋ฌ๋ค.
window.open('https://www.naver.com', 'newWin', 'width=300, height=400')
JavaScript
๋ณต์ฌ
โข
๋ธ๋ผ์ฐ์ ๊ฐ์ฒด ๋ชจ๋ธ
โฆ
window, location, navigator, history, screen, document
// ๋ธ๋ผ์ฐ์ ์ฃผ์์ฐฝ
console.log('check >>', location.href)
function gotoNaver() {
location.href = 'https://www.naver.com'
}
window.onload = function(){
console.log('onload : ํ์ด์ง ๋ก๋ ์๋ฃ')
}
JavaScript
๋ณต์ฌ
โฆ
์ด๋ฒคํธ ์ฐ๊ฒฐ
document.addEventListener('DOMContentLoaded', function(){
console.log('๋ฌธ์๊ฐ์ฒด๋ฅผ ๋ชจ๋ ์ฝ๊ณ ๋๋ฉด ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ๊ณ ์ฝ๋ฐฑํจ์๋ฅผ ์คํ')
let h1_el = document.getElementById('h1')
console.log(h1_el.innerHTML)
})
JavaScript
๋ณต์ฌ
โฆ
์บ์คํ
: ๋ฌธ์๊ฐ์ฒด ์์ฑ
// querySelector : css ์ ํ์๋ฅผ ์ด์ฉํด์ ์บ์คํ
const div_el = document.querySelector('div')'
// ํ
์คํธ ๋ณ๊ฒฝ, ์ปฌ๋ฌ, padding, margin, font-size
div_el.textContent = 'HEADER'
div_el.style.backgroundColor = 'yellow' // ๋ฐฑ๊ทธ๋ผ์ด๋ ์์ ๋ณ๊ฒฝ๋จ css๋ background-color๋ก ํ๊ธฐ๋จ
div_el.style.color = 'blue'
div_el.style.padding = '20px'
div_el.style.fontSize = '32px'
JavaScript
๋ณต์ฌ
โฆ
์ฌ๋ฌ๊ฐ์ ์๋ฆฌ๋จผํธ ์บ์คํ
const h3s = document.querySelectorAll('h3')
console.log(h3s)
h3s.forEach((item, index) => {
// item.textContent += index
item.innerHTML = item.innerHTML + ` <i>${index}</i>`
item.style.color = 'red'
})
JavaScript
๋ณต์ฌ
โฆ
์์ฑ ์ปจํธ๋กค
const a_el = document.querySelector('a')
let href_str = a_el.getAttribute('href')
console.log('href >>', href_str)
a_el.setAttribute('href', 'https://github.com')
console.log(a_el)
<body>
<!-- <a href="https://www.naver.com">naver</a> -->
<h3>header - 3</h3>
<h3>header - 3</h3>
<h3>header - 3</h3>
<h1 id="h1" onclick="gotoNaver()"><span>ํ์ด์ง ์ด๋</span></h1>
<div><span>test</span></div>
</body>
JavaScript
๋ณต์ฌ
โข
๋์ ์ผ๋ก ํ๊ทธ ์์ฑ
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>js_dom3</title>
<script>
// load
document.addEventListener('DOMContentLoaded', () => {
// 1. ํ๊น(์๋กญ๊ฒ ์์นํ ์์น) ์๋ฆฌ๋จผํธ
const wrap = document.querySelector('#wrap')
// 2. ์๋ก์ด ์๋ฆฌ๋จผํธ ๊ฐ์ฒด ์์ฑ
const newEl = document.createElement('h2');
// ์์ฑ, ์คํ์ผ..
newEl.textContent = '๋์ ์ผ๋ก ์์ฑํ h2 tag'
newEl.style.textAlign = 'center'
newEl.style.color = 'blue'
newEl.style.backgroundColor = 'yellow'
// 3. ํ๊น์ ์๋ก์ด ์๋ฆฌ๋จผํธ ์ถ๊ฐ
wrap.appendChild(newEl)
// ์ด๋ฏธ์ง ํ๊ทธ ์์ฑ
const newImg = document.createElement('img')
newImg.setAttribute('src', '/image/bonobono.jpg')
wrap.appendChild(newImg)
})
</script>
</head>
<body>
<!-- <h3>title</h3>
<div id="wrap"></div> -->
<h3>Menu</h3>
<div id="wrap"></div>
</body>
</html>
JavaScript
๋ณต์ฌ
โข
div > h3(์ํ๋ช
) > p(๊ฐ๊ฒฉ)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>js_dom3</title>
<style>
#wrap {
display: flex;
}
.box {
border: 1px solid #aaa;
width: 150px;
height: 150px;
}
</style>
<script>
let menus = [
{name: '์๋ฉ๋ฆฌ์นด๋
ธ', price: 3000},
{name: '์๋ฉ๋ฆฌ์นด๋
ธ', price: 3000},
{name: '์๋ฉ๋ฆฌ์นด๋
ธ', price: 3000},
{name: '์๋ฉ๋ฆฌ์นด๋
ธ', price: 3000},
{name: '์๋ฉ๋ฆฌ์นด๋
ธ', price: 3000},
{name: '๋ธ๋ ํฐ', price: 4000},
{name: '๋ฐํฌ', price: 5000}
]
// load
document.addEventListener('DOMContentLoaded', () => {
// menus ๋ฐ๋ณต ํด์ appendChild
menus.forEach((item, index) => {
// div > h3(์ํ๋ช
) > p(๊ฐ๊ฒฉ)
const newDiv = document.createElement('div')
newDiv.setAttribute('class', 'box')
const newh3 = document.createElement('h3')
newh3.textContent = item.name
newDiv.appendChild(newh3)
const newp = document.createElement('p')
newp.textContent = `${item.price} ์`
newDiv.appendChild(newp)
wrap.appendChild(newDiv)
})
})
</script>
</head>
<body>
<h3>Menu</h3>
<div id="wrap"></div>
</body>
</html>
JavaScript
๋ณต์ฌ




