본문 바로가기

JAVASCRIPT

(66)
JAVASCRIPT ) Math.random() 공식 Math.floor(Math.random() * (max - min) + 1) + min
JAVASCRIPT ) 이터레이션과 for of문 이터레이션 프로토콜을 준수한 객체는 for of문으로 순회할 수 있고 Spread 문법의 피연산자가 될 수 있다.이터레이션 프로토콜에는 이터러블 프로토콜과 이터레이터 프로토콜이 있다.  for of문은 이터러블한 것(배열 등)만 순회하여 출력한다.일반 객체는 이터러블하지않다.(순서를 보증하지않는다.) . 즉 for of문로 일반객체를 돌릴 수 없다.하지만 일반 객체도 이터러블 프로토콜을 준수하도록 구현하면 이터러블이 된다. ---> 커스텀 이터러블
JAVASCRIPT ) 심볼 심볼은 변경 불가능한 원시 타입의 값이다.심볼은 주로 이름의 충돌 위험이 없는 유일한 객체의 프로퍼티 키(값의 위치에는 쓸 수 없다.)를 만들기 위해 사용한다. 심볼은 Symbol() 함수로 생성한다. Symbol() 함수는 호출될 때마다 Symbol 값을 생성한다. 이떄 생성된 Symbol은 객체가 아니라 변경 불가능한 원시 타입의 값이다.Symbol() 함수는 스트링, 넘버, 불린과 같이 객체를 생성하는 생성자 함수와 달리 new 연산자를 사용하지 않는다.Symbol() 함수에는 문자열을 인자로 전달할 수 있다. 이 문자열은 심볼 생성에 어떠한 영향을 주지 않으며 다만 생성된 심볼에 대한 설명으로 디버깅 용도로만 사용된다. 즉, 식별자의 의미가 아니다.Symbol 값을 키로 갖는 프로퍼티는 다른 어떠..
JAVASCRIPT ) 모듈 모듈이란 애플리케이션을 구성하는 개별적 요소( class )로서 재사용 가능한 코드 조각(파일로 분리)을 말한다.모듈은 세부 사항을 캡슐화하고 공개가 필요한 API만을 외부에 노출한다. 일반적으로 모듈은 파일 단위로 분리되어 있으며 애플리케이션은 필요에 따라 명시적으로 모듈을 로드하여( import ) 재사용한다. 그냥 컴퍼넌화해서 사용하면 파일간에 변수명이 겹쳐 오류가 날 수 있다.모듈화해서 사용하면 모듈안에서 사용한 변수는 더이상 전역변수가 아니며 window 객체의 프로퍼티도 아니다.모듈안에서만 사용되는 변수이다.    export로 내보내고 import로 받기import안에 그냥 써도 되는데 이름을 바꿔 저장하고싶을때는 as를 사용한다. const pi = Math.PI;function squar..
JAVASCRIPT ) canvas에 방정식 그래프 그리기 const canvas = document.getElementById('canvas'); const pen = canvas.getContext('2d'); const canvasWidth = canvas.getAttribute('width'); const canvasHeight = canvas.getAttribute('height'); const scaleFactorX = 100; const scaleFactorY = 10; const factorWidth = canvasWidth / scaleFactorX; const factorHeight = canvasHeight / scaleFactorY; cons..
JAVASCRIPT ) 객체 delete 객체에서 delete는 요소를 삭제하는것이 아니다.값을 초기화 하는것이다.아래의 사진처럼 공간이 살아있다.
JAVASCRIPT ) canvas로 데이터 시각화 좌표(0,0)위치바꾸기   예제   예제) 막대그래프 그리기   예제) 스케일팩터 설정하여 단위 수정하기   예제) 눈금 그리기   그래프 그리기    y축 값 2의 x승으로     점으로 그래프
JAVASCRIPT ) Double Linked List Double Linked List는 양방향 탐색이 가능한 구조이다.   class DoubleLinkedList { constructor(id, value){ this.id = id; this.value = value; this._prevLink = null; this._nextLink = null; } get prevLink(){return this._prevLink;} set prevLink(prevLinkV){this._prevLink = prevLinkV;} get nextLink(){return this._nextLink;} set nextLink(nextLinkV){this._nextLink = nextLinkV..