Backend
home

2024. 7. 2

Javascript

์‹ค์Šตํ•œ ์†Œ์Šค ์ •๋ฆฌ

โ€ข
obj_copy.js
const obj1 = { key1: 10, key2: "์•ˆ๋…•ํ•˜์„ธ์š”", key3: { isLogin: false } } const obj2 = obj1 // ์ฃผ์†Œ๊ฐ’ ๋ณต์‚ฌ const obj3 = { ...obj1 } // ๊ฐ์ฒด์˜ ์–•์€ ๋ณต์‚ฌ [๊ฐ์ฒด ๋‚ด์˜ ๊ฐ์ฒด๋Š” ์ฃผ์†Œ๊ฐ’ ๋ณต์‚ฌ] const obj4 = JSON.parse(JSON.stringify(obj1)); obj1.key1 += 1; obj1.key3.isLogin = true; console.log("obj1", obj1); console.log("obj2", obj2); console.log("obj3", obj3); console.log("obj4", obj4);
JavaScript
๋ณต์‚ฌ
โ€ข
spread_po.js
const [name, ...info] = ["์ตœ๋ฏผ์‹", 50, "์„œ์šธ"]; console.log("name", name); console.log("info", info); const names = ['์ตœ๋ฏผ์‹', '์œ ํ•ด์ง„', '์ด๋„ํ˜„', '๊น€๊ณ ์€']; const stars = ['์ด๋„ํ˜„', ...names, ...names]; console.log(stars); const fruits = ['์‚ฌ๊ณผ', '์˜ค๋ Œ์ง€', '๋”ธ๊ธฐ', '์ˆ˜๋ฐ•']; const [apple, orange, ...rest] = fruits; console.log(rest); let me = { my_name: "jonathan", my_age: 10, my_region: '์„œ์šธ', my_email: 'jonathan@naver.com' } const { my_name, my_age, ...my_rest } = me; console.log(my_rest);
JavaScript
๋ณต์‚ฌ
โ€ข
arrow_func.js
function sum1(x, y) { return x + y; } const sum2 = function (x, y) { return x + y; } const sum3 = (x, y) => { return x + y; } const sum4 = (x, y) => x + y; const sum5 = (x, y) => { return x + y; } console.log(sum1(1, 2)) console.log(sum2(1, 2)) console.log(sum3(1, 2)) console.log(sum4(1, 2)) console.log(((x, y) => x + y)(1, 2)) console.log(sum5(1, 2))
JavaScript
๋ณต์‚ฌ
โ€ข
map.js
// ๋ฐฐ์—ด ๋ฉ”์„œ๋“œ map // ๋ฐฐ์—ด ์•ˆ์˜ ์š”์†Œ๋“ค์„ ์ฒ˜๋ฆฌํ•ด์„œ, [์ƒˆ๋กœ์šด ๋ฐฐ์—ด ์ƒ์„ฑ] const arr = [1, 3, 5, 7, 9]; const mapArr1 = arr.map((value) => value + 1); const mapArr2 = arr.map((value, index) => value + index); const mapArr3 = arr.map((value, index, array) => value + array[4]); console.log(mapArr1); console.log(mapArr2); console.log(mapArr3)
JavaScript
๋ณต์‚ฌ
โ€ข
filter.js
// ๋ฐฐ์—ด ๋ฉ”์„œ๋“œ filter // ์ฝœ๋ฐฑ ์กฐ๊ฑด์— ์ถฉ์กฑํ•˜๋Š” ์š”์†Œ๋งŒ์„ ์ถ”์ถœํ•ด [์ƒˆ๋กœ์šด ๋ฐฐ์—ด ๋ฐ˜ํ™˜] const arr = [1, 2, 3, 4, 5, 6]; // const mapArr1 = arr.map(value => value % 2 == 1); // console.log(mapArr1); const filterArr1 = arr.filter(value => value % 2 == 1); console.log(filterArr1); const filterArr2 = arr.filter((value, index) => index > 3); console.log(filterArr2); const filterArr3 = arr.filter((value, index, array) => value > array[2]); console.log(filterArr3);
JavaScript
๋ณต์‚ฌ
โ€ข
forEach.js
// ๋ฐฐ์—ด ๋ฉ”์„œ๋“œ forEach // ๋ฐฐ์—ด ๊ฐ ์š”์†Œ์— ๋Œ€ํ•ด์„œ ํ•จ์ˆ˜๋ฅผ ์‹คํ–‰ํ•œ๋‹ค. const weekArr = ['์›”', 'ํ™”', '์ˆ˜', '๋ชฉ', '๊ธˆ'] weekArr.forEach((value => { console.log(value + "์š”์ผ"); }));
JavaScript
๋ณต์‚ฌ
โ€ข
reduce.js
// ๋ฐฐ์—ด ๋ฉ”์„œ๋“œ reduce // ๋ฐฐ์—ด์„ ํ†ตํ•ด ํ•˜๋‚˜์˜ ๊ฐ’์„ ๋งŒ๋“ ๋‹ค const arr = [1, 2, 3, 4, 5]; const value1 = arr.reduce((acc, cur) => { return acc + cur }); const value2 = arr.reduce((acc, cur) => { return acc + cur }, 900); console.log(value1); console.log(value2); const lastArr = arr.reduce((acc, cur) => { if (cur % 2 === 0) { acc.push(cur) } return acc; }, []); console.log(lastArr)
JavaScript
๋ณต์‚ฌ

React

โ€ข
first_react
import './App.css'; function App() { const name = "React" const url = "https://naver.com" const style = { color: 'red', backgroundColor: 'black' } const num = 10; return ( // ์ค‘๊ด„ํ˜ธ๋ฅผ ์ด์šฉํ•ด ๋ณ€์ˆ˜ ์‚ฝ์ž… ๊ฐ€๋Šฅ <div> <h1>{name + " JS"} ์‹œ์ž‘</h1> <a href={url}>๋„ค์ด๋ฒ„</a> {/* ๋‹จ์ผ ํƒœ๊ทธ๋„ ํƒœ๊ทธ๋ฅผ ๋‹ซ์•„์•ผ ํ•œ๋‹ค */} <br></br> <input type='text' value={name}></input> <br/> <input type='password' /> {/* class, for => className, htmlFor */} <div className="title">์ œ๋ชฉ</div> <label htmlFor="user_id">์•„์ด๋””</label> <input type='text' id="user_id"></input> {/* style */} <div style={{color: 'red', backgroundColor: 'black'}}>์•ˆ๋…•ํ•˜์„ธ์š”</div> <div style={style}>์•ˆ๋…•ํ•˜์„ธ์š”</div> <div> { num > 10 ? <h1>num์€ 10๋ณด๋‹ค ํฌ๋‹ค</h1> : <h1>num์€ 10๋ณด๋‹ค ๊ฐ™๊ฑฐ๋‚˜ ์ž‘๋‹ค</h1> } </div> </div> ); } export default App;
JavaScript
๋ณต์‚ฌ
โ€ข
component_react
โ—ฆ
Comp.jsx
const Comp = () => { return ( <div> ๋‚˜์˜ ์ฒซ ์ปดํฌ๋„ŒํŠธ </div> ) } export default Comp;
JavaScript
๋ณต์‚ฌ
โ—ฆ
Comps.jsx
const Header = () => { return ( <div> <h1> <a href='/'>React</a> </h1> </div> ); } const Navi = () => { const menuList = [ { name: "ํ™ˆ", link: "/" }, { name: "์ถ”์ฒœ", link: "recomm" }, { name: "๋ทฐํ‹ฐ", link: "beauty" }, ] return ( <nav> { menuList.map((menu) => { return ( <div> <a href={menu.link}> {menu.name} </a> </div> ) }) } </nav> ); } const Article = (props) => { const style = { textAlign: 'center', backgroundColor: "#aaa", height: '20vh', margin: '10px 50px', } return ( <article style={style}> <h2>{props.text}</h2> </article> ); } export default { Header, Navi, Article };
JavaScript
๋ณต์‚ฌ
โ—ฆ
Introduce.jsx
import Button from "../Button"; const Introduce = (props) => { return ( <div> <h2>์•ˆ๋…•ํ•˜์„ธ์š”</h2> <Button size="small" color='red'>ํด๋ฆญ</Button> <Button size="medium" color='orange'>๋ˆ„๋ฅด์„ธ์š”</Button> <Button size="large" color='yellow'>Click</Button> <Button event={() => alert('ํด๋ฆญ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.')}></Button> <p>๋‚ด ์นœ๊ตฌ ์ด๋ฆ„ {props.name}์ž…๋‹ˆ๋‹ค.</p> <p>๋‚ด ์นœ๊ตฌ์˜ ์„ฑ๋ณ„์€ {props.gender}์ž…๋‹ˆ๋‹ค.</p> </div> ); } Introduce.defaultProps = { name: "minsung", gender: '๋‚จ์ž' } export default Introduce;
JavaScript
๋ณต์‚ฌ
โ—ฆ
App.js
import './App.css'; import Comp from './components/Comp'; import Comps from './components/Comps'; import Introduce from './components/Introduce'; function App() { return ( <div> <Comps.Header></Comps.Header> <Comps.Navi></Comps.Navi> { /* props: ๋ถ€๋ชจ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์ž์‹์ปดํฌ๋„ŒํŠธ์—๊ฒŒ ์ „๋‹ฌํ•˜๋Š” ๊ฐ’ */ } <Comps.Article text="ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค."></Comps.Article> <Comps.Article text="๋งŒ๋‚˜์„œ ๋ฐ˜๊ฐ‘์Šต๋‹ˆ๋‹ค."></Comps.Article> <Comp /> <Introduce name="์œ ์žฌ์„" gender="๋‚จ์ž"></Introduce> <Introduce name="๊น€์ข…๊ตญ" gender="๋‚จ์ž"></Introduce> <Introduce name="์ง€์„์ง„" gender="๋‚จ์ž"></Introduce> <Introduce name="์ „์†Œ๋ฏผ" gender="์—ฌ์ž"></Introduce> <Introduce></Introduce> </div> ); } export default App;
JavaScript
๋ณต์‚ฌ
โ€ข
layout_react - ๊ฒŒ์‹œํŒ ๊พธ๋ฏธ๊ธฐ
โ—ฆ
Layout.css
header { background-color: lightgreen; padding: 20px; display: flex; justify-content: space-between; align-items: center; } header a { text-decoration: none; color: black; font-size: 18px; } header nav { display: flex; } header nav li { background-color: lightsalmon; list-style-type: none; margin-right: 10px; padding: 3px 6px; border-radius: 10px; border: 1px solid black; box-shadow: 3px 3px 3px rgba(0, 0, 0, 0.15); } main { padding: 50px; min-height: 50vh; } footer { background-color: #bbb; padding: 20px; }
CSS
๋ณต์‚ฌ
โ—ฆ
Layout.jsx
import "./Layout.css"; const Layout = ({children}) => { return ( <> <header> <a href="/">๋ฉ”์ธ๋กœ๊ณ </a> <nav> <li><a href="/#menu1">menu1</a></li> <li><a href="/#menu2">menu2</a></li> <li><a href="/#menu3">menu3</a></li> <li><a href="/#menu4">menu4</a></li> </nav> </header> <main> {children} </main> <footer>์—ฐ๋ฝ์ฒ˜ ์ •๋ณด</footer> </> ); } export default Layout;
JavaScript
๋ณต์‚ฌ
โ—ฆ
App.js
import logo from './logo.svg'; import './App.css'; import Layout from './components/Layout'; function App() { return ( <div className="App"> <Layout> <div> <h1>๊ฒŒ์‹œํŒ ํ™”๋ฉด</h1> <table> <tr> <th>๋ฒˆํ˜ธ</th> <th>์ œ๋ชฉ</th> <th>์ž‘์„ฑ์ž</th> </tr> <tr> <td>1</td> <td>์•ˆ๋…•ํ•˜์„ธ์š”</td> <td>minsung</td> </tr> <tr> <td>2</td> <td>ํ˜„์‹ค์€ ์ฐจ๊ฐ‘๋‹ค</td> <td>minsung</td> </tr> </table> </div> </Layout> </div> ); } export default App;
JavaScript
๋ณต์‚ฌ

JSON ์„œ๋ฒ„ ์„ค์น˜

โ€ข
npm ์‹คํ–‰
sudo npm i -g json-server
CSS
๋ณต์‚ฌ
โ€ข
server ์‹คํ–‰ (json server์™€ react ์„œ๋ฒ„๊ฐ€ ๋™์‹œ์— ์‹คํ–‰๋˜์–ด ์žˆ์–ด์•ผ ํ•จ)
json-server --watch data.json --port 8080 --watch/-w can be omitted, JSON Server 1+ watches for file changes by default JSON Server started on PORT :8080 Press CTRL-C to stop Watching data.json... โ™กโธœ(หถหƒ แต• ห‚หถ)โธโ™ก Index: http://localhost:8080/ Static files: Serving ./public directory if it exists Endpoints: No endpoints found, try adding some data to data.json
CSS
๋ณต์‚ฌ

๊ธฐํƒ€