์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 |
29 | 30 |
- javascript
- ์น ๋ธ๋ผ์ฐ์ ๊ตฌ์กฐ
- clone coding
- ํ๋ก ํธ์๋
- tailwindcss
- canvas image
- canvas js
- HTML ํ์ผ๊ตฌ์กฐ
- ์ฝ๋ฉ๋ ํ
- CSS
- react
- ๋ ธ๋ง๋์ฝ๋
- HTML
- ์ฝ์ฝ์ํก ํด๋ก ์ฝ๋ฉ
- next.js
- axios-mock-adapte
- ์ฝ๋ฉ์ผ๊ธฐ
- queryprovider
- jest
- ์ํ์ฝ๋ฉ
- tanstack-query
- ๋ ธ๋ง๋ ์ฝ๋
- typescript
- negative margin
- canvas
- ๋ฐ๋๋ผ JS๋ก ๊ทธ๋ฆผํ ๋ง๋ค๊ธฐ
- ๋ฐ๋๋ผ JS๋ก ํฌ๋กฌ ์ฑ ๋ง๋ค๊ธฐ
- JAVA Script
- ์น ๋ธ๋ผ์ฐ์ ๋ ๋๋ง
- JS
- Today
- Total
Coding Archive
๋ ธ๋ง๋ ์ฝ๋ - ๋ฐ๋๋ผ JS๋ก ํฌ๋กฌ ์ฑ ๋ง๋ค๊ธฐ ๋ณธ๋ฌธ
๋ ธ๋ง๋ ์ฝ๋ - ๋ฐ๋๋ผ JS๋ก ํฌ๋กฌ ์ฑ ๋ง๋ค๊ธฐ
์ฝ๋ฑ์ด 2022. 6. 3. 23:54#1 INTRODUCTION
three.js๋ javascript๋ก 3D๋ฅผ ๊ตฌํํ๊ฒ ํด์ฃผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ๋ฐ์ดํฐ ์๊ฐํ๋ ๊ตฌํ์ด ๊ฐ๋ฅํ๋ค.
javascript ๊ธฐ์ ์ ์ข ๋ ๊น๊ฒ ๋ฐฐ์ฐ๊ณ ์ถ๋ค๋ฉด ํ๋ ์์ํฌ๋ก ๋์ด๊ฐ๋ฉด ๋๋ค.
→ ํ๋ ์์ํฌ๋ ์ฝ๊ฒ ๋งํด ๋ด๊ฐ ํ๋ ค๋ ์ผ์ ๋์์ฃผ๋ ๋์ฐ๋ฏธ์ด๋ค.
(ex. React Native - javascript๋ง์ผ๋ก ์๋๋ก์ด๋๋ ios์ฑ์ ๋ง๋ค ์ ์๊ฒ ํด ์ค๋ค.
Electron - javascript์ html, css๋ก ๋ฐ์คํฌํฑ ์ฑ์ ๋ง๋ค ์ ์๊ฒ ํด ์ค๋ค.)
Replit๋ ๋ธ๋ผ์ฐ์ ๋ฅผ ์ฌ์ฉํ์ฌ ์ฝ๋๋ฅผ ์์ฑํ๊ณ ์ฑ๊ณผ ์น์ฌ์ดํธ๋ฅผ ๋ง๋ค ์ ์๊ฒ ํ๋ค. (๋ธ๋ผ์ฐ์ ์ vsc ๊ฐ์ ํ๋ก๊ทธ๋จ์ ๊น ์ ์์ ๋ ์ฌ์ฉ)
#2 WELCOME TO JAVASCRIPT
0. Your First JS Project
. javascript๋ฅผ ๋ค๋ฃจ๋ ๋ฐฉ๋ฒ์, ๋ธ๋ผ์ฐ์ ์ console์ ์ฌ์ฉํ๋ฉด ๋๋ค.
. ํฐ๋ฏธ๋์ ์ฌ์ฉํด์ ํด๋๋ฅผ ์์ฑ
. html ํ์ผ์ ๋ธ๋ผ์ฐ์ ์ ๋์ด๋ค ์ด๊ณ , ๊ทธ ์์์ ์คํ
→๋ธ๋ผ์ฐ์ ๋ html์ ์คํํ๊ณ html์์ css์ js ์ฝ๋๋ฅผ ๋ถ๋ฌ์จ๋ค.
(html์ด css๋ javascript์ ์ฐ๊ฒฐํด์ฃผ๋ ์ ์ฐฉ์ ๊ฐ์ ์ญํ )
css, js๋ง์ผ๋ก๋ ๋ธ๋ผ์ฐ์ ์ ๋ญ๊ฐ๋ฅผ ์คํ์ํฌ ์ ์๋ค. (css๋ js๋ ๋ธ๋ผ์ฐ์ ์์ ์ฐ๋ค๊ณ ์คํ ×)
. css์ javascript์ ์์น๋ ์๋์ ๊ฐ๋ค.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="stylesheet" href="style.css" />
<title>Momentutm</title>
</head>
<body>
<script src="app.js"></script>*
</body>
</html>
1. Basic Data Types
๋ฐ์ดํฐ ํ์ ์ ์ข ๋ฅ
(1) Number
1) ์ ์(Integer) // 1, 2, 3, 4...
2) ์์(Float) // 1.555, 2.545345...
->Numberํ์ ์ ์๋ก ์ฐ์ฐ๊ธฐํธ(+, -, *, /)๋ฅผ ์ด์ฉํ์ฌ ๊ณ์ฐํ ์ ์๋ค.
(2) String
์ฒ์๋ถํฐ ๋๊น์ง ๋ฌธ์(Text)๋ก ๊ตฌ์ฑ๋์ด ์๋ค๋ ์๋ฏธ์ด๋ค.
ํฐ๋ฐ์ดํ("")๋๋ ์์๋ฐ์ดํ('')์ ์ฌ์ด์ ๋ฃ์ด์ ํํํ๋ฉฐ, " " ๋ฑ์ ๊ณต๋ฐฑ๋ ํฌํจ ๊ฐ๋ฅํ๋ค.
Stringํ์ ์ ํฉ์ ๋ ๊ฐ๋ฅผ ํฉ์ณ์ ์ถ๋ ฅํ๋ค.
ex)"Hello, " + " My name is Nico" // Hello, My name is Nico
String+Number = String
ex) "Hello"+2 // "hello2"
2. Variables
. Js์์ ๋ณ์ (variable)์ ์ฃผ๊ณ ์ถ์ ๋ ์ฐ๋ ๊ฒ์ const์ด๋ฉฐ, const = constant(์์) ํญ์ ๋ณํ์ง ์๋ ๊ฐ์ ์๋ฏธ
. ๋ณ์๋ฅผ ์ง์ ํ๋ฉด ์ผ์ผ์ด ์์ ํด์ผ ํ๋ ๋ฒ๊ฑฐ๋ก์์ด ์ค์ด๋ ๋ค. (๋ณ์์ ๊ฐ๋ง ๋ฐ๊ฟ์ฃผ๋ฉด ๋๊ธฐ ๋๋ฌธ)
ex) 5์ ๋ณ์๋ฅผ a๋ก ์ ์ธ/ 2์ ๋ณ์๋ฅผ b๋ก ์ ์ธ
const a = 5;
const b = 2;
console.log(a + b);
console.log(a * b);
console.log(a / b);
. Js์์ ๋ณ์์ ์ด๋ฆ์ ์ง์ ํด์ค ๋ ๋์ด์ฐ๊ธฐ๋ฅผ ํ์ง ์๊ณ , ๋ณดํต ๋๋ฌธ์๋ฅผ ์จ์ ํ์ํด์ค๋ค.
=> camelcase (์ค๊ฐ์ค๊ฐ ๋๋ฌธ์๊ฐ ๋ค์ด๊ฐ ์๋ ๊ฒ ๋ํ๊ฐ์ด ์๊ฒผ๋ค๊ณ ํด์ ๋ถ์ฌ์ง)
const myName = "nico";
console.log("hello " + myName);
3. const and let
. ๋ณ์๋ง ๋ค ๋ let, const, var ์ฐจ์ด
1) const ์ฌ์ ์ธ ๊ธ์ง, ์ฌํ ๋น ๊ธ์ง
const a = b;
const a = c; // ์ฌ์ ์ธ ๊ธ์ง
const a = b;
a = c; // ์ฌํ ๋น ๊ธ์ง
2) let ์ฌ์ ์ธ ๊ธ์ง, ์ฌํ ๋น ๊ฐ๋ฅ
let a = b;
let a = c; // ์ฌ์ ์ธ ๊ธ์ง
let a = b;
a = c; // ์ฌํ ๋น์ ๊ฐ๋ฅ
3) var ์ฌ์ ์ธ ๊ฐ๋ฅ, ์ฌํ ๋น ๊ฐ๋ฅ
var a = b;
var a = c;
a = d; //์ฌ์ ์ธ, ์ฌํ ๋น ๊ฐ๋ฅ
. variable(๋ณ์) ๋ง๋๋ ๋ฐฉ๋ฒ์ 2๊ฐ์ง.
- const → ์์์ด๋ฏ๋ก ๊ฐ ๋ณ๊ฒฝ ๋ถ๊ฐ๋ฅ
- let → ๋ณ์ซ๊ฐ ๋ณ๊ฒฝ ๊ฐ๋ฅ
const๋ฅผ ๊ธฐ๋ณธ์ ์ผ๋ก ์ฌ์ฉํ๊ณ ์ ๋ฐ์ดํธ๊ฐ ํ์ํ ๋ณ์๋ผ๋ฉด let์ ์ฌ์ฉํ๋ค.
๊ณผ๊ฑฐ์๋ varํ ๋ณ์๋ฅผ ์ผ๋๋ฐ, ์ธ์ด์ ๋ํ ๋ณดํธ๋ฅผ ๋ฐ์ง ๋ชปํ๊ณ , ๋ณ์ ๊ฐ ๋ณ๊ฒฝ์ด ๊ฐ๋ฅํ๋ค. → ๋๋๋ก ์ฐ์ง ๋ง์!
const a = 5;
const b = 2;
let myName = "nico";
console.log(a + b); // 7
console.log(a * b); // 0
console.log(a / b); // 2.5
console.log("hello " + myName); // hello nico
myName = "nicolas";
console.log("your new name is " + myName); // your new name is nicolas(์
๋ฐ์ดํธ ๋ myName์ ๊ฐ์ ๋ฐ์)
4. Booleans
booleans : ๋ฐ์ดํฐ ํ์ ์ ํ ์ข ๋ฅ (number, string, boolean...)
boolean ๊ฐ์ผ๋ก true, false๊ฐ ์๋ค.
๋ ๋ค๋ฅธ ๊ฐ์ผ๋ก๋ null, undefined๊ฐ ์๋ค.
- true =/= "true" (""์์ ๋ค์ด๊ฐ๋ ๊ฑด string)
- false =/= "false" (""์์ ๋ค์ด๊ฐ๋๊ฑด string)
- null = ๊ฐ์ด ์์(๋น์ด ์์). ์์ฐ์ ์ผ๋ก ๋ฐ์ํ์ง ์์ผ๋ฉฐ, ๊ฐ์ด ์๋ค๋ ๊ฒ์ ํ์คํ ํ๊ธฐ ์ํด ์ด๋ค.
๋ณ์์ null(๊ฐ์ด ์๋ค)์ด ํ ๋น๋๋ค. ์ฆ, ๊ฐ์ด ์ ์๋จ
null =/= undefined
null =/= false - undefined = ๊ฐ์ด ์ ์๋์ง ์์. ๋ณ์๋ ์ ์ธํ์ง๋ง ๊ฐ์ ํ ๋นํ์ง๋ ์์.
5. Arrays
๋ฐ์ดํฐ ์ ๋ฆฌํ๋ ๋ฒ → ๋ฐ์ดํฐ ๊ตฌ์กฐ
๋ฐ์ดํฐ ๊ตฌ์กฐ ์ค ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ๊ฑด ๋ฐฐ์ด์ด๋ค.
๋ฐฐ์ด์ ๋ฐ์ดํฐ๋ฅผ ๋์ดํ๊ธฐ ์ํ ๋ฐฉ๋ฒ ์ค ํ๋์ด๋ค.
๋ฐฐ์ด(array)
- ํ๋์ ๋ณ์ ์์ ๋ฐ์ดํฐ์ list๋ฅผ ๊ฐ์ง๋ ๊ฒ.
- ๋ค๋ฅธ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์๋ ์๋ ๊ฐ์ฅ ๊ธฐ์ด์ ์ด๊ณ , ํ์์ ์ธ ๋ฐ์ดํฐ ๊ฐ์ ๋ฆฌ์คํธ๋ก ์ ๋ฆฌํ๋ ๊ฒ
- array๋ [ ] ๋๊ดํธ๋ก ์ด๊ณ ๋ซ๋๋ค.
- ํญ์ [ ] ์์ ์ฝค๋ง(,)๋ก ๋ฐ์ดํฐ๋ค์ ๋์ดํ๋ค. ๋ณ์๋ ์ฐ์ผ ์ ์๊ณ , boolean, text, ์ซ์ ๋ฑ ๋ฐ์ดํฐ ์ ๋ ฌ์ด ๊ฐ๋ฅํ๋ค.
const daysOfWeek = ["mon", "tue", "wed", "thu", "fri", "sat", "sun"];
์์ ๋ณ์์์ 5๋ฒ์งธ element ๊ฐ์ ์๊ณ ์ถ์ ๋
console.log(daysOfWeek[4])
๋ผ๊ณ ํด์ผ 5๋ฒ์งธ ๊ฐ์ ์ถ๋ ฅํ ์ ์๋ค.
์ปดํจํฐ๋ ์ซ์๋ฅผ 0๋ถํฐ ์ธ๊ธฐ ๋๋ฌธ์, “mon”์ 0๋ฒ์งธ๋ผ๊ณ ์๊ฐํ๋ฉด ๋๋ค.
์์ ์ํ์์ daysOfWeek์ด๋ ๋ณ์์ ํ๋์ ๊ฐ์ ๋ ๋ฃ๊ณ ์ถ๋ค๋ฉด ์๋์ ๊ฐ์ดํ๋ค.
const daysOfWeek = ["mon", "tue", "wed", "thu", "fri", "sat", "sun"];
daysOfWeek.push(“holiday”)
→ push๋ ์ถ๊ฐํ๋ ๊ธฐ๋ฅ.
+) Q
const๋ก ์ ์ธํ๋ฉด ๋ณํ์ง ์๋ ๊ฑฐ๋ผ๊ณ ํ๋๋ฐ const daysOfWeek = ["mon", "tue", "wed", "thu", "fri", "sat"]; ์์
์ด๋ป๊ฒ daysOfWeek.push("sun"); ์ ์จ์ ๋ด์ฉ๋ฌผ์ ์ถ๊ฐํ ์ ์๋์ง?
array ์์ ๋ด์ฉ๋ฌผ์ ์์ธ์ธ ๊ฑด์ง?
-
const a = 2; ์ด๋ ๊ฒ ์์ผ๋ฉด a = 4; ์ด๋ ๊ฒ ๋ณ๊ฒฝํ๋ ๊ฑด ๋ถ๊ฐ๋ฅํ๋ค.
ํ์ง๋ง ๋ฐฐ์ด๊ณผ ๊ฐ์ ๊ฒฝ์ฐ ๋ด์ฉ๋ฌผ ์์ ์์๋ค์ ๋ณ๊ฒฝ์ด ๊ฐ๋ฅํ๋ค.
์ ์ธํ ๋ณ์๋ฅผ ๋ฐ์ค๋ก ์๊ฐํ๋ฉด const daysOfWeek = ["mon", "tue", "wed", "thu", "fri", "sat"]; ์ด๋ ๊ฒ ์ ์ธ์ ํ๋ฉด ์ดํ์ daysOfWeek = ["hi"]; ์ด๋ ๊ฒ ์์ ํ๋ ๊ฑด ๋ถ๊ฐ๋ฅํ๋ค. ์๋ํ๋ฉด ๋ฐ์ค ๊ทธ ํต์งธ๋ก ๋ฐ๊พธ๋ ค๊ณ ํ๊ธฐ ๋๋ฌธ์ด๋ค.
ํ์ง๋ง ๊ทธ ๋ฐ์ค ์์ ๋ด์ฉ๋ฌผ๋ค์ ์ถ๊ฐํ๊ฑฐ๋ ์ญ์ ํ ์๋ ์๋ค.
6. Objects
์ค๋ช ์ด ํ์ํ์ง ์์ ๋ฐ์ดํฐ ๋ฆฌ์คํธ๋ค์ array๋ฅผ, ์ค๋ช ์ด ํ์ํ ์ ๋ณด๊ฐ ๋ด๊ธด ๋ฐ์ดํฐ ๋ฆฌ์คํธ๋ค์ object๋ฅผ ์ฌ์ฉํ๋ค.
object๋ property๋ฅผ ๊ฐ์ง ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํด์ฃผ๋ฉฐ, { }๋ฅผ ์ฌ์ฉํด ์ด๊ณ ๋ซ๋๋ค.
object์ property๊ฐ์ (=)์ด ์๋ (:)๋ก ํํ, ๊ทธ๋ฆฌ๊ณ ์ฐ๊ฒฐ์ ;๊ฐ ์๋ ,(์ผํ)๋ก ์ฐ๊ฒฐํ๋ค.
const player = {
name : tomato,
color : red,
food : true,
};
console.log(player); // {name: "tomato", color: "red", food: true}
property๋ฅผ ๋ถ๋ฌ์ค๋ ๋ฐฉ๋ฒ์ 2๊ฐ์ง๊ฐ ์๋ค.
1)
console.log(player.name); // tomato
2)
console.log(player["name"]); // tomato
๋ํ property๋ฅผ ๋ฐ๊พธ๋ ๊ฒ์ ๊ฐ๋ฅํ์ง๋ง ์ ์ธ๋ object๋ฅผ ๋ฐ๊พธ๋ ๊ฒ์ ๋ถ๊ฐ๋ฅํ๋ค.
*const๋ let๊ณผ ๋ค๋ฅด๊ฒ update๊ฐ ์๋์ง๋ง ๋ฆฌ์คํธ์ ๊ฒฝ์ฐ ์ ์ฒด๋ฅผ ๋ณ๊ฒฝํ๋ ๊ฒ ์๋๋ผ ์์ฑ ๊ฐ์ ์์ /์ถ๊ฐํ๋ ๊ฒฝ์ฐ์๋ update๊ฐ ๊ฐ๋ฅํ๋ค.
ex)
const player = {
name : tomato,
color : red,
food : true,
number : 5,
};
console.log(player); // {name: "tomato", color: "red", food: true, number: 5}
player.color = "blue";
console.log(player.color); // blue
player.number = player.number + 5;
console.log(player.number); // 10
console.log(); ์์ console์ object์ด๊ณ , ๊ทธ ์์ log๋ผ๋ ๊ฒ์ด ์๋ค๋ ๊ฒ์ด๋ค.
'๐ฅ๏ธ Clone Coding > Java Script' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ ธ๋ง๋ ์ฝ๋ - ๋ฐ๋๋ผ JS๋ก ํฌ๋กฌ ์ฑ ๋ง๋ค๊ธฐ(3) (0) | 2022.06.07 |
---|---|
๋ ธ๋ง๋ ์ฝ๋ - ๋ฐ๋๋ผ JS๋ก ํฌ๋กฌ ์ฑ ๋ง๋ค๊ธฐ(2) (0) | 2022.06.04 |
์ํ์ฝ๋ฉ WEB2- JavaScript ์ ๋ฆฌ(3) (0) | 2022.05.28 |
์ํ์ฝ๋ฉ WEB2- JavaScript ์ ๋ฆฌ(2) (0) | 2022.05.26 |
์ํ์ฝ๋ฉ WEB2- JavaScript ์ ๋ฆฌ (0) | 2022.05.23 |