๊ฐ•์˜

[ํŒจ์ŠคํŠธ์บ ํผ์Šค ๊ฐ•์˜] JS ๋ฐ์ดํ„ฐ

seulye 2024. 3. 18. 16:49

 

ECMA

https://ko.wikipedia.org/wiki/ECMA%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8

 

ECMA์Šคํฌ๋ฆฝํŠธ - ์œ„ํ‚ค๋ฐฑ๊ณผ, ์šฐ๋ฆฌ ๋ชจ๋‘์˜ ๋ฐฑ๊ณผ์‚ฌ์ „

์œ„ํ‚ค๋ฐฑ๊ณผ, ์šฐ๋ฆฌ ๋ชจ๋‘์˜ ๋ฐฑ๊ณผ์‚ฌ์ „. ECMA์Šคํฌ๋ฆฝํŠธ(ECMAScript, ๋˜๋Š” ES[1])๋ž€, Ecma International์ด ECMA-262 ๊ธฐ์ˆ  ๊ทœ๊ฒฉ์— ๋”ฐ๋ผ ์ •์˜ํ•˜๊ณ  ์žˆ๋Š” ํ‘œ์ค€ํ™”๋œ ์Šคํฌ๋ฆฝํŠธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋ฅผ ๋งํ•œ๋‹ค. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ํ‘œ

ko.wikipedia.org

JS = ES

 


String

๋ฌธ์ž๋ฐ์ดํ„ฐ๋Š” ํฐ๋”ฐ์˜ดํ‘œ, ์ž‘์€๋”ฐ์˜ดํ‘œ, ๋ฐฑํ‹ฑ(`)๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Œ. 

๋ฐฑํ‹ฑ์€ ${} ๋ฐ์ดํ„ฐ(ํ…œํ”Œ๋ฆฟ ๋ฆฌํ„ฐ๋Ÿด) ๋ฅผ ๋ฌธ์ž์—ด์— ์—ฐ๊ฒฐํ•  ๋•Œ ์‚ฌ์šฉ (๋ณด๊ฐ„)

๋ฆฌํ„ฐ๋Ÿด : ๊ธฐํ˜ธ๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐฉ์‹.

 

number์— undefined๋ฅผ ๋”ํ•˜๊ฒŒ ๋˜๋ฉด NaN (Not a Number)์ด ์ถœ๋ ฅ ๋จ.

NaN์€ ์ˆซ์ž ํƒ€์ž…์ด์ง€๋งŒ ์ˆซ์ž๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์—†์Œ.

typeof ๋ฅผ ๋ถ™์ด๋ฉด ํ•ด๋‹น ๋ฐ์ดํ„ฐ์˜ ํƒ€์ž…์„ ์•Œ ์ˆ˜ ์žˆ์Œ.

 

const a = 0.1;
const b = 0.2;

console.log(a + b);
// ๊ฒฐ๊ณผ 0.30000000000000004

console.log((a + b).toFixed(1));
// ๊ฒฐ๊ณผ 0.3 (๋ฌธ์ž๋ฐ์ดํ„ฐ)

console.log(Number((a + b).toFixed(1)));
// ๊ฒฐ๊ณผ 0.3 (์ˆซ์ž๋ฐ์ดํ„ฐ)

 

let : ์žฌํ• ๋‹น ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๋Š” ๋ฐ์ดํ„ฐ. 

null(๋ช…์‹œ์ ) : ๋ฐ์ดํ„ฐ๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š๊ฑฐ๋‚˜ ๋น„์–ด์žˆ๋‹ค. 

undefined(์•”์‹œ์ ) : ๊ฐ’์ด ํ• ๋‹น๋˜์–ด ์žˆ์ง€ ์•Š๋‹ค. ๊ธฐ๋ณธ ๋ณ€์ˆ˜์— ์•„๋ฌด๊ฒƒ๋„ ํ• ๋‹น๋˜์ง€ ์•Š์•˜์„ ๋•Œ. 

 

Array ๋ฐฐ์—ด

const fruits = new Array('Apple','Banana','Cherry');
const fruits2 = ['Apple','Banana','Cherry']; // ๋ฐฐ์—ด ๋ฆฌํ„ฐ๋Ÿด

 

fruits[0] ๋Œ€๊ด„ํ˜ธ ํ‘œ๊ธฐ๋ฒ•. ์ธ๋ฑ์‹ฑ. 

Apple ์€ ๋ฐฐ์—ด์˜ ์•„์ดํ…œ = ๋ฐฐ์—ด์˜ ์š”์†Œ = Array์˜ element

 

Object ๊ฐ์ฒด

// ์ƒ์„ฑ์ž ํ•จ์ˆ˜
const name = new Object();
user.name = "YEJIN";
user.age = 28;

// ๋ฆฌํ„ฐ๋Ÿด ๋ฐฉ์‹
const user = {
  name: "YEJIN",
  age: 28,
};

console.log(user.name); // ์ ํ‘œ๊ธฐ๋ฒ•
console.log(user["name"]); // ๋Œ€๊ด„ํ˜ธํ‘œ๊ธฐ๋ฒ•. ๋ณ€์ˆ˜ ์ด์šฉ ๊ฐ€๋Šฅ.

key : value ํ˜•ํƒœ๋กœ ๋งŒ๋“ค์–ด์ง. 

key : ์†์„ฑ, property / value : ๊ฐ’

key๋Š” ๊ณ ์œ ํ•˜๊ณ  ์ˆœ์„œ๋ผ๋Š” ๊ฐœ๋…์ด ์กด์žฌํ•˜์ง€ ์•Š์Œ. ๋จผ์ € ๋งŒ๋“ค์—ˆ๋‹ค๊ณ  ๋จผ์ € ์ถœ๋ ฅ๋˜์ง€ ์•Š์Œ. 

 

์ผ์น˜, ๋™๋“ฑ ์—ฐ์‚ฐ์ž

=== ์ผ์น˜. 1์ด๋ž‘ '1'์€ ๋‹ค๋ฆ„. ๊ฐ™์€ ํƒ€์ž…์ธ์ง€๋„ ํ™•์ธ. 

== ๋™๋“ฑ. 1์ด๋ž‘ '1'์ด ๊ฐ™์Œ. 0์ด๋ž‘ false๋ž‘ ๊ฐ™์Œ. ํ˜•๋ณ€ํ™˜์ด ๋จ.

 

์ฐธ๊ณผ ๊ฑฐ์ง“

๊ฑฐ์ง“ : false, 0, null, undefined, NaN, '', 0n ( Big Int) 

๋นˆ ๋ฐฐ์—ด([])์ธ ๊ฒฝ์šฐ๋„ ์ฐธ์— ๋“ค์–ด๊ฐ. 

 

 ๋ฐ์ดํ„ฐ ํƒ€์ž… ํ™•์ธ

typeof๋กœ๋Š” null์ด๋ž‘ [] , {}์€  object๋กœ ๋‚˜์˜ด. 

[].constructor => Array
{}.constructor => Object
null.constructor => ์—๋Ÿฌ ๋ฐœ์ƒ

Object.prototype.toString.call(null) => [Object Null]
Object.prototype.toString.call(null).slice(8,-1) => Null

 

function checkType(data) {
  return Object.prototype.toString.call(data).slice(8, -1);
}