개발 기록 남기기✍️

자바스크립트 중급 (2) - Symbol, 수학 Method 본문

Front-End/JavaScript

자바스크립트 중급 (2) - Symbol, 수학 Method

너해동물원 2022. 12. 5. 13:13

이번 포스트도 역시나 코딩앙마님의 강의를 보고 작성했습니다.

[자바스크립트 중급 강좌 : 140분 완성 - YouTube](https://www.youtube.com/watch?v=4_WLS9Lj6n4&t=5204s)


1. Symbol

Symbol은 JS의 자료형 중 하나로, 유일한 식별자 를 만들 때 사용한다.

Symbol의 기본적인 property key는 문자형이다.

const a = Symbol() 형식으로 사용한다.

const a = Symbol();
const b = Symbol();
console.log(a); // Symbol()
console.log(b); // Symbol()
a === b; // false
a == b; // false


const id = Symbol('id');
const user = {
    name : 'Mike',
    age : 20,
    [id] : 'myId'
};


console.log(user); // {name : 'Mike', age : 20}

Object.getOwnPropertySymbols(user);
// [Symbol(id)]


Reflect.ownKeys(user);
// ['name', 'age', Symbol(id)]

Symbol("text")로 심볼에 설명을 붙여줄 수 있다. 심볼이 동작하는데 아무 영향도 주지 않는다.

Object method에서는 Symbol을 건너뛴다.

✔️숨겨진 Symbol key 보는 법

  1. Object.getOwnPropertySymbols(user)` -> `[Symbol(id]
  2. Reflect.ownKeys(user)` -> `['name', 'age', Symbol(id)]

 

Symbol.for()

  • 하나의 심볼만 보장받을 수 있다.
  • 전역 심볼이다.
  • Symbol 함수는 매번 다른 Symbol 값을 생성하지만, Symbol.for('key') 메소드는 하나를 생성한 뒤, 키를 통해 같은 Symbol을 공유한다.
  • Symbol.keyFor(var)을 통해 해당 Symbolkey 값을 알 수 있다.
  • 전역 심볼이 아닌 심볼은 keyFor 대신 description을 사용하면 된다.
const id1 = Symbol.for('id');
const id2 = Symbol.for('id');
id1 === id2; // true
Symbol.keyFor(id1); // "id"


const id3 = Symbol('id입니다');
id3.description; // 'id입니다'

2. 수학 Method

toString()

10진수에서 16진수화 한다.

let num = 10;
num.toString(); // "10"
num.toString(2); // "1010"

let num2 = 255;
num2.toString(16); // "ff"

 

Math.ceil()

소수점을 올림 처리하여 정수화

 

Math.floor()

소수점을 내림 처리하여 정수화

 

Math. round()

 소수점을 반올림하여 정수화

 

toFixed(n)

원하는 소수점 자릿수에 맞춰 String 값으로 반환

 

isNaN()

해당 값이 NaN인지를 판별해서 boolean 값을 반환

 

parseInt()

문자열을 숫자로 반환, 읽을 수 있는 부분만 읽고 정수로 반환한다.

숫자만 읽고, 문자가 등장하는 즉시 문자 이전까지의 값을 반환한다. 문자가 첫 글자일 때 NaN을 반환한다.

두 번째 인수를 받아서 진수를 주장할 수 있다.

let margin = "10px";
parseInt(margin); // 10
Number(margin); // NaN


let red = 'f3';
parseInt(red); // NaN
parseInt(red, 16); // 243

 

parseFloat()

문자열을 숫자로 반환하며, 소수점까지 모두 반환한다.

 

Math.random()

0부터 1까지 사이의 무작위 숫자를 생성한다.

예제) 1 ~ 100 사이의 임의의 숫자를 뽑고 싶다면?

Math.floor(Math.random() * 100) / + 1

 

Math.max() / Math.min()

인수들 중 최댓값 / 최솟값을 반환한다.

 

Math.abs()

인수의 절대값을 반환한다.

 

Math.pow(n,m)

n을 m 제곱한 값을 반환한다.

Math.pow(2,10); // 1024

 

Math.sqrt()

인수의 제곱근을 반환한다.

Math.sqrt(16); // 4