Javascript

    generate random id ์— ๋Œ€ํ•œ ๊นƒํ—ˆ๋ธŒ ๋‹ต๋ณ€

    ID - a unique ID/name generator for JavaScript (github.com) ID - a unique ID/name generator for JavaScript ID - a unique ID/name generator for JavaScript. GitHub Gist: instantly share code, notes, and snippets. gist.github.com I strongly recommend using performance.now().toString(36) instead of Date.now - since it offers a higher precision date (ref: https://developer.mozilla.org/en-US/docs/Web/..

    [๋“œ๋ฆผ์ฝ”๋”ฉ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ] ๋น„๋™๊ธฐ promise

    https://youtu.be/JB_yU6Oe2eE ์ฃผ์„์€ ์ฝœ๋ฐฑ ์ง€์˜ฅ ์˜ˆ์ œ // class UserStorage { // loginUser(id, password, onSuccess, onFailure) { // setTimeout(() => { // if ( // (id === "ํ™๊ธธ๋™" && password === "์•„๋ฒ„์ง€") || // (id === "ํ™ฉ์ง„์ด" && password === "์ฒญ์‚ฐ๋ฆฌ") // ) { // onSuccess(id); // } else { // onFailure(new Error("not found")); // } // }, 2000); // } // getRoles(user, onSuccess, onFailure) { // setTimeout(() => { // if (..

    [๋“œ๋ฆผ์ฝ”๋”ฉ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ]๋น„๋™๊ธฐ์˜ ์‹œ์ž‘ ์ฝœ๋ฐฑ์ง€์˜ฅ

    https://youtu.be/s1vpVCrT8f4 index.js class UserStorage { loginUser(id, password, onSuccess, onFailure) { setTimeout(() => { if ( (id === "ํ™๊ธธ๋™" && password === "์•„๋ฒ„์ง€") || (id === "ํ™ฉ์ง„์ด" && password === "์ฒญ์‚ฐ๋ฆฌ") ) { onSuccess(id); } else { onFailure(new Error("not found")); } }, 2000); } getRoles(user, onSuccess, onFailure) { setTimeout(() => { if (user === "ํ™๊ธธ๋™") { onSuccess({ name: "ํ™๊ธธ๋™", role: "์•„๋ฒ„..

    [์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ค‘๊ธ‰] call, apply, bind

    [์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ค‘๊ธ‰] call, apply, bind

    https://youtu.be/KfuyXQLFNW4 call, apply, bind ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ์˜ ํ•จ์ˆ˜ ํ˜ธ์ถœ ๋ฐฉ์‹ function add(a: number, b: number): number { return a + b; } console.log(add(10, 20)); console.log(add.apply(null, [10, 20])); console.log(add.call(null, 10, 20)); console.log(add.bind(null, 10, 20)()); call, apply, bind : ํ•จ์ˆ˜ ํ˜ธ์ถœ ๋ฐฉ์‹๊ณผ ๊ด€๊ณ„์—†์ด this๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Œ javascript์˜ ํ•จ์ˆ˜๋Š” ๊ฐ์ž ์ž์‹ ๋งŒ์˜ this๋ผ๋Š” ๊ฒƒ์„ ์ •์˜ํ•œ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ this๋Š” window์ด์ง€๋งŒ this๋Š” ๊ฐ์ฒด ๋‚ด๋ถ€, ๊ฐ์ฒด ๋ฉ”..

    node.js ์ด์šฉํ•ด์„œ ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ ํ”„๋กœ์ ํŠธ ์ƒ์„ฑํ•˜๊ธฐ

    node.js ์ด์šฉํ•ด์„œ ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ ํ”„๋กœ์ ํŠธ ์ƒ์„ฑํ•˜๊ธฐ

    ์ฐธ๊ณ : [Node.js ์ฝ”๋“œ๋žฉ] 1.์˜ค๋ฆฌ์—”ํ…Œ์ด์…˜ | ๊น€์ •ํ™˜ ๋ธ”๋กœ๊ทธ (jeonghwan-kim.github.io) ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœํ™˜๊ฒฝ์˜ ์ดํ•ด: NPM | ๊น€์ •ํ™˜ ๋ธ”๋กœ๊ทธ (jeonghwan-kim.github.io) 1. ๊ฐœ๋ฐœ์„ ์ง„ํ–‰ํ•  ์ ๋‹นํ•œ ๋นˆํด๋” ํ•˜๋‚˜ ๋งŒ๋“ค๊ธฐ ์•„๋ž˜ ์ˆœ์„œ๋Œ€๋กœ ์ž‘์„ฑํ•˜๊ธฐ npm init ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ ๋ช…๋ น์–ด๋กœ, ํ”„๋กœ์ ํŠธ์˜ ๋ฉ”ํƒ€ ์ •๋ณด๋ฅผ ์ž…๋ ฅํ•  ์ˆ˜ ์žˆ๋Š” ํ™”๋ฉด์ด ์ œ๊ณต๋œ๋‹ค. ์•„๋ž˜์™€ ๊ฐ™์ด ๋œฌ๋‹ค npm init This utility will walk you through creating a package.json file. It only covers the most common items, and tries to guess sensible defaults. See `npm help init` for d..

    [๊ธฐ์ดˆ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ] ๋“œ๋ฆผ์ฝ”๋”ฉ by ์—˜๋ฆฌ๋‹˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ธฐ์ดˆ ๊ฐ•์˜ (ES5+) ์‹œ๋ฆฌ์ฆˆ ์ •์ฃผํ–‰ ๊ธฐ๋ก

    [๊ธฐ์ดˆ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ] ๋“œ๋ฆผ์ฝ”๋”ฉ by ์—˜๋ฆฌ๋‹˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ธฐ์ดˆ ๊ฐ•์˜ (ES5+) ์‹œ๋ฆฌ์ฆˆ ์ •์ฃผํ–‰ ๊ธฐ๋ก

    https://youtu.be/tJieVCgGzhs ** ์—˜๋ฆฌ๋‹˜ ์˜์ƒ ๋‚ด์šฉ + ๊ฐœ์ธ์ ์œผ๋กœ ํ•™์Šตํ•œ ๋ถ€๋ถ„์„ ์„ž์–ด ํฌ์ŠคํŒ…์„ ์ž‘์„ฑํ•˜๋ฏ€๋กœ, ์˜์ƒ ํ๋ฆ„ ๋ฐ ๋‚ด์šฉ๊ณผ ํฌ์ŠคํŒ…์ด ์™„์ „ํ•˜๊ฒŒ ์ผ์น˜ํ•˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค. (์ฝ˜ํ…์ธ  ์˜ค๋ฅ˜ ์ง€์  ํ™˜์˜) ํ•ต์‹ฌ ๊ฐœ๋… : 'defer' ์™€ 'use strict' ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ณต์‹์‚ฌ์ดํŠธ๋Š” ์ดํฌ๋งˆ http://ecma-international.org/ Welcome to Ecma International Welcome Ecma International is an industry association founded in 1961, dedicated to the standardization of information and communication systems. We are also here: Si..

    [์ค‘๊ธ‰ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ] ์‹ฌ๋ณผ

    [์ค‘๊ธ‰ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ] ์‹ฌ๋ณผ

    https://youtu.be/4_WLS9Lj6n4 **์ฝ”๋”ฉ์•™๋งˆ๋‹˜์˜ ์œ ํŠœ๋ธŒ ๋ฌด๋ฃŒ ๊ฐ•์ขŒ๋ฅผ ๋ณด๊ณ  ํ•™์Šตํ•œ ํฌ์ŠคํŒ…์ž…๋‹ˆ๋‹ค. ๊ฐ์ฒด ํ”„๋กœํผํ‹ฐ ํ‚ค๋Š” ๋ฌธ์ž์—ด.. ์‹ฌ๋ณผ์€.. [์œ ์ผํ•œ ์‹๋ณ„์ž] const a = Symbol(); //new๋ฅผ ๋ถ™์ด์ง€ ์•Š๋Š”๋‹ค. const symA = Symbol(); const symB = Symbol(); console.log(symA); //Symbol() console.log(symB); //Symbol() console.log(symA == symB); //false console.log(symA === symB); // false ์‹ฌ๋ณผํ˜•์€ ์œ ์ผ์„ฑ์„ ๋ณด์žฅํ•ด์ค€๋‹ค. const id = Symbol('id'); ์‹ฌ๋ณผ ๋’ค์— ์†Œ๊ด„ํ˜ธ์— ์„ค๋ช…์„ ๋„ฃ์–ด์ฃผ๋ฉด ์ข‹๋‹ค. ๋“ค์–ด๊ฐ€๋Š” ๋ฌธ์ž์—ด ์„ค๋ช…์€ ์–ด๋– ํ•œ ์˜ํ–ฅ๋„ ..

    [์ค‘๊ธ‰ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ] ๊ฐ์ฒด ์ฐธ์ดˆ, ๊ฐ์ฒด ๋ณต์‚ฌ, ๋ฐฐ์—ด ์ปจํŠธ๋กค ์‹ฌํ™”

    [์ค‘๊ธ‰ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ] ๊ฐ์ฒด ์ฐธ์ดˆ, ๊ฐ์ฒด ๋ณต์‚ฌ, ๋ฐฐ์—ด ์ปจํŠธ๋กค ์‹ฌํ™”

    https://youtu.be/4_WLS9Lj6n4 https://youtu.be/9tbjjZb65ng ** const user = { name:'Mike', age:30 } ์œ„์™€ ๊ฐ™์ด user๋ผ๋Š” ๊ฐ์ฒด๊ฐ€ ์žˆ์„ ๋•Œ, ๋ณต์ œ(๊นŠ์€ ๋ณต์‚ฌ)๋ฅผ ํ•˜๊ธฐ ์œ„ํ•ด์„œ const cloneUser = user; ์œ„์™€ ๊ฐ™์ด ์ž‘์„ฑํ•˜๋ฉด ๊ธฐ๋Œ€ํ–ˆ๋˜ ํšจ๊ณผ(๊ฐ์ฒด๋ฅผ ๋ณต์‚ฌํ•ด์„œ ๋„ฃ๋Š”๋‹ค)๋ฅผ ์–ป์„ ์ˆ˜ ์—†๋‹ค.(์›์ธ: ์•„๋ž˜ ์บก์ฒ˜ ์ฐธ๊ณ ) ์•„๋ž˜ ์บก์ฒ˜๋ฅผ ์ฐธ๊ณ ํ•˜๋ฉด ์•Œ ์ˆ˜ ์žˆ๋“ฏ์ด cloneUser๋Š” ํž™์— ๋‹ด๊ธด user๋ฅผ ๋ž˜ํผ๋Ÿฐ์Šคํ•˜๋Š” ๋ž˜ํผ๋Ÿฐ์Šค ๋ณ€์ˆ˜๊ฐ€ ๋œ๋‹ค.(์–•์€ ๋ณต์‚ฌ)(๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ•˜๋Š” ๊ฐ’์ด ๋“ค์–ด๊ฐ„๋‹ค) ๋”ฐ๋ผ์„œ cloneUser.age=44; ์‹์œผ๋กœ cloneUser์˜ ํ”„๋กœํผํ‹ฐ ๊ฐ’์„ ๋ฐ”๊พธ์–ด๋ฒ„๋ฆฌ๋ฉด user.age์˜ ๋‚˜์ด๋„ ๋™๊ธฐํ™”๋˜์–ด ๋ณ€๊ฒฝ๋˜๋Š” ๊ฒƒ์„ ์•„๋ž˜ ์˜ˆ์ œ๋ฅผ ํ†ตํ•ด ..

    [์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ] ๋‚œ์ˆ˜ ์ƒ์„ฑ

    [Javascript] ๋‚œ์ˆ˜ ์ƒ์„ฑํ•˜๊ธฐ (๋žœ๋ค ์ˆซ์ž, Random Number) - ์–ด์ œ ์˜ค๋Š˜ ๋‚ด์ผ (tistory.com) [Javascript] ๋‚œ์ˆ˜ ์ƒ์„ฑํ•˜๊ธฐ (๋žœ๋ค ์ˆซ์ž, Random Number) Javascript๋กœ ๋‚œ์ˆ˜๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค. Math.random() ๋ฒ”์œ„๋ฅผ ์ง€์ •ํ•œ ๋‚œ์ˆ˜ ์ƒ์„ฑํ•˜๊ธฐ 0~9 0~10 0~99 0~100 1~10 2~5 ๋‚œ์ˆ˜ ์ƒ์„ฑ ํ•จ์ˆ˜ ๋งŒ๋“ค๊ธฐ (๋ฒ”์œ„ ์ง€์ •) min