์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- https://developer-talk.tistory.com/299
- for~in/for~of
- ๋ด์ฅ๊ณ ์ฐจํจ์
- ใทใ
- Beesbeesbees
- ์๋ฐ์คํฌ๋ฆฝํธ#์กฐ๊ฑด๋ฌธ#๋ฌธ์์ด
- CSS
- slice/splice/split
- ์๋ฐ์คํฌ๋ฆฝํธ
- UX
- cmarket
- dom
- js
- https://www.daleseo.com/js-array-slice-splice/
- User Flow
- https://lo-victoria.com/introduction-to-redux-toolkit-for-beginners
- react
- redux์ํ์ ์ง
- toString#String
- variable#function
- JS#3์ผ์ฐจ๋ฌ๋ฆฌ์#์ด๋ฐ์ธ๋ฐ#์๊ฐ๊ธ๋ฐฉ~
- https://dasima.xyz/%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8-%EC%A0%9C%EA%B3%B1-math-pow-%EA%B3%84%EC%82%B0/
- children vs childrenNodes
- ํท๊ฐ๋ฆฐ๋ค~
- ์๋ฐ์คํฌ๋ฆฝํธ#JS#slice#splice
- ์๋ฐ์คํฌ๋ฆฝํธ#JS#var#let#const#undefined#null
- UI
- ๋ ธ๋๊ต๊ณผ์
- @redux-toolkit
- removeCookie
- Today
- Total
Daily Front_Minhhk
[JS] fs๋ชจ๋ (part-2) ๋ณธ๋ฌธ
๐ ์ด๋ ต๋ค~ ์คํ๋ฆฐํธ ๊ณผ์ ์ด์ง๋ง,, ํ ์คํธ์ผ์ด์ค์ ๊ตฌ๊ธ์ ์ฐธ๊ณ ํ๋ฉฐ ๋๋ค๊ฒจ ๋ณด์๋ค.. ๋๋์ ์ค๋๋ฐ ์ฌ์ ํ ์๋ฟ์ง๋ ์๋๋ค^^
01_callBack.js
const fs = require("fs");
const getDataFromFile = function (filePath, callback) {
// TODO: fs.readFile์ ์ด์ฉํด ์์ฑํฉ๋๋ค
fs.readFile(filePath, "utf8", (err, data) => {
err ? callback(err, null) : callback(null, data)
})
};
getDataFromFile('README.md', (err, data) => console.log(data));
module.exports = {
getDataFromFile
};
02_promiseConstructor.js
const fs = require("fs");
const getDataFromFilePromise = filePath => {
// TODO: Promise ๋ฐ fs.readFile์ ์ด์ฉํด ์์ฑํฉ๋๋ค.
return new Promise((resolve, reject) => {
fs.readFile(filePath, "utf8", (err, data) => {
err ? reject(err) : resolve(data)
})
})
};
getDataFromFilePromise('README.md').then(data => console.log(data));
module.exports = {
getDataFromFilePromise
};
03_basicChaining.js
const path = require('path');
const { getDataFromFilePromise } = require('./02_promiseConstructor');
const user1Path = path.join(__dirname, 'files/user1.json');
const user2Path = path.join(__dirname, 'files/user2.json');
// HINT: getDataFromFilePromise(user1Path) ๋ฐ getDataFromFilePromise(user2Path)๋ฅผ ์ด์ฉํด ์์ฑํฉ๋๋ค
const readAllUsersChaining = () => {
// TODO: ์ฌ๋ฌ๊ฐ์ Promise๋ฅผ then์ผ๋ก ์ฐ๊ฒฐํ์ฌ ์์ฑํฉ๋๋ค
return getDataFromFilePromise(user1Path)
.then(user1 => {
return getDataFromFilePromise(user2Path)
.then(user2 => {
return `[${user1},${user2}]`
})
}).then(text => JSON.parse(text))
}
readAllUsersChaining();
module.exports = {
readAllUsersChaining
}
04_promiseAll.js
const path = require('path');
const { getDataFromFilePromise } = require('./02_promiseConstructor');
const user1Path = path.join(__dirname, 'files/user1.json');
const user2Path = path.join(__dirname, 'files/user2.json');
const readAllUsers = () => {
// TODO: Promise.all์ ์ด์ฉํด ์์ฑํฉ๋๋ค
let user1 = getDataFromFilePromise(user1Path)
let user2 = getDataFromFilePromise(user2Path)
return Promise.all([user1, user2]).then((value) => {
return value.map((data) => {
return JSON.parse(data)
})
})
}
readAllUsers()
module.exports = {
readAllUsers
}
05_asyncAwait.js
const path = require('path');
const { getDataFromFilePromise } = require('./02_promiseConstructor');
const user1Path = path.join(__dirname, 'files/user1.json');
const user2Path = path.join(__dirname, 'files/user2.json');
const readAllUsersAsyncAwait = async () => {
// TODO: async/await ํค์๋๋ฅผ ์ด์ฉํด ์์ฑํฉ๋๋ค
let arr = []
let user1 = await getDataFromFilePromise(user1Path)
let user2 = await getDataFromFilePromise(user2Path)
arr.push(JSON.parse(user1))
arr.push(JSON.parse(user2))
return arr
}
readAllUsersAsyncAwait();
module.exports = {
readAllUsersAsyncAwait
}
+์ถ๊ฐ์
JSON.parse(): JSON ๋ฌธ์์ด์ JavaScript ๊ฐ์ฒด๋ก ๋ณํ
JSON ๋ฌธ์์ด์ JavaScript ๊ฐ์ฒด๋ก ๋ณํํ ๋๋ JSON ๊ฐ์ฒด์ parse() ๋ฉ์๋๋ฅผ ์ฌ์ฉํฉ๋๋ค.
parse() ๋ฉ์๋๋ JSON ๋ฌธ์์ด์ ์ธ์๋ก ๋ฐ๊ณ ๊ฒฐ๊ณผ๊ฐ์ผ๋ก JavaScript ๊ฐ์ฒด๋ฅผ ๋ฐํํฉ๋๋ค.
JSON.stringify(): JavaScript ๊ฐ์ฒด๋ฅผ JSON ๋ฌธ์์ด๋ก ๋ณํ
์ญ์ผ๋ก JavaScript ๊ฐ์ฒด๋ฅผ JSON ๋ฌธ์์ด๋ก ๋ณํํ ๋๋ JSON ๊ฐ์ฒด์ stringify() ๋ฉ์๋๋ฅผ ์ฌ์ฉํฉ๋๋ค. stringify() ๋ฉ์๋๋ JavaScript ๊ฐ์ฒด๋ฅผ ์ธ์๋ก ๋ฐ๊ณ JSON ๋ฌธ์์ด์ ๋ฐํํฉ๋๋ค.
์ฐธ์กฐ →
JSON.parse()์ JSON.stringify()
Engineering Blog by Dale Seo
www.daleseo.com
# ์๋ฐ์คํฌ๋ฆฝํธ ํจ์ ํธ์ถํ๊ธฐ, bind()
์๋ฐ์คํฌ๋ฆฝํธ์์ ํจ์๋ฅผ ํธ์ถ ํ ๊ฒฝ์ฐ
bind()
๋ฉ์๋๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๋ง์ฝ ์ด๋ค ํจ์๊ฐ ์์ ๋ ์ด ํจ์๋ฅผ ์คํํ๊ธฐ ์ํด์ bind()๋ฅผ ์ฌ์ฉํ๋ฉด ์ด๋ป๊ฒ ๋ ๊น์?
์ด ๊ฒฝ์ฐ bind()๋ ์๋ก์ด ํจ์๋ฅผ ๋ฐํํ๊ฒ ๋ฉ๋๋ค.
์ด๋ ํจ์๋ฅผ ์คํํ๊ธฐ ์ํด () ์๊ดํธ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ๊ณผ๋ ์ฐจ์ด์ , ๋ค๋ฅธ ํน์ง์ ๊ฐ์ง ์ ์์ต๋๋ค.
์ฆ, call(), apply()์ฒ๋ผ this๋ฅผ ์ง์ ํ ์๋ ์๊ณ ๋ํ ์ํ๋ ์ธ์๋ฅผ ์ ๋ฌํ ์๋ ์์ต๋๋ค.
์ด๋ฐ ์ด์ ๋ก bind()๊ฐ ์ฌ์ฉ๋ฉ๋๋ค. ๊ทธ๋ผ ๊ฐ๋จํ ์ฌ์ฉ ๋ฌธ๋ฒ์ ์๋์ ๊ฐ์ต๋๋ค.
๐ Function.bind(thisArg, [arg1, arg2, ...])
thisArg // this๊ฐ ๊ฐ๋ฆฌํฌ ๊ฐ์ฒด๋ฅผ ์ง์
[arg1, arg2 ... ]// ํจ์์ ์ธ์๋ก ์ ๋ฌํ ๊ฐ
์ด๋ ์ฒซ ๋ฒ์งธ ์ธ์์ธ thisArg๋ ์ ํ์ต์ ์ผ๋ก ๊ฐ์ ์ ๋ฌํ์ง ์์๋ ๋๋ฉฐ null ๋ฑ์ ์ฌ์ฉํ ์๋ ์๋๋ค.
๊ทธ ๋ค์์ ํจ์์ ์ ๋ฌ ํ ์ธ์ ๊ฐ์ผ๋ก ๋ฐฐ์ด ํ์ ์ผ๋ก ์ ๋ฌํ๊ฒ ๋ฉ๋๋ค.
์ด์ฒ๋ผ ์ธ์ ๊ฐ์ ๋ฐฐ์ด๋ก ์ ๋ฌํ๋ ๊ฒ์ apply() ์ ๋น์ทํฉ๋๋ค.
[์๊ฐํ ์ ] call(), apply()์์ ์ฐจ์ด์ ์?
๊ฑฐ์ ๋์ผํ๊ฒ ํ์ฉ์ด ๊ฐ๋ฅํ์ง๋ง ํจ์๋ฅผ ์คํํ์ง ์๊ณ ํจ์๋ฅผ ์์ฑํ ํ ๋ฐํํ๋ ์ ์์ call(), apply()์์ ์ฐจ์ด์ ์ ๋๋ค.
์ฐธ์กฐ →
์๋ฐ์คํฌ๋ฆฝํธ ํจ์์ bind ๋ฉ์๋ ์ฌ์ฉํ๊ธฐ
์๋ฐ์คํฌ๋ฆฝํธ์ ํจ์ ๋ฉ์๋ ์ค ํ๋์ธ bind()์ ๋ํ์ฌ ์์๋ด ๋๋ค.
webisfree.com
'Code๊ฐ๋ฐ์ผ์ง' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[React] JSX,component (0) | 2022.11.25 |
---|---|
[JS] fetch API...sprint (0) | 2022.11.25 |
[JS] ํ์ด๋จธAPI[setTimeout,setInterval() ] / (node.js)-fs.readFile(path[, options], callback) (0) | 2022.11.24 |
[JS] ๋น๋๊ธฐ[callBack, Promise, async-await] (0) | 2022.11.24 |
[JS] {Beesbeesbees}, super, extends, class, constructor( ),get-set (0) | 2022.11.21 |