JS 튜토리얼

제이에스 홈 JS 소개 JS 어디로 JS 출력 JS 문 JS 구문 JS 코멘트 JS 변수 제이에스렛 JS 상수 JS 연산자 JS 산술 JS 할당 JS 데이터 유형 JS 함수 JS 객체 JS 이벤트 JS 문자열 JS 문자열 메서드 JS 문자열 검색 JS 문자열 템플릿 JS 번호 JS 숫자 메서드 JS 배열 JS 배열 메서드 JS 배열 정렬 JS 배열 반복 JS 배열 상수 JS 날짜 JS 날짜 형식 JS 날짜 가져오기 메서드 JS 날짜 설정 방법 JS 수학 JS 랜덤 JS 부울 JS 비교 JS 조건 JS 스위치 JS 루프 In에 대한 JS 루프 의 JS 루프 JS 루프 동안 JS 브레이크 JS 이터러블 JS 세트 JS 맵 JS 유형 JS 유형 변환 JS 비트와이즈 JS 정규 표현식 JS 오류 JS 범위 JS 호이스팅 JS 엄격 모드 JS 이 키워드 JS 화살표 함수 JS 클래스 JS JSON JS 디버깅 JS 스타일 가이드 JS 모범 사례 JS 실수 JS 성능 JS 예약어

JS 버전

JS 버전 JS 2009(ES5) JS 2015(ES6) JS 2016 JS 2017 JS 2018 JS IE / 엣지 JS 연혁

JS 객체

객체 정의 개체 속성 개체 메서드 개체 표시 개체 접근자 객체 생성자 개체 프로토타입 객체 반복 가능 객체 세트 객체 맵 개체 참조

JS 함수

기능 정의 기능 매개변수 함수 호출 함수 호출 기능 적용 함수 클로저

JS 클래스

수업 소개 클래스 상속 클래스 정적

JS 비동기

JS 콜백 JS 비동기 JS 약속 JS 비동기/대기

JS HTML DOM

DOM 소개 DOM 메서드 DOM 문서 DOM 요소 DOM HTML DOM 양식 DOM CSS DOM 애니메이션 DOM 이벤트 DOM 이벤트 리스너 DOM 탐색 DOM 노드 DOM 컬렉션 DOM 노드 목록

JS 브라우저 BOM

JS 창 JS 화면 JS 위치 JS 연혁 JS 네비게이터 JS 팝업 경고 JS 타이밍 JS 쿠키

JS 웹 API

웹 API 소개 웹 양식 API 웹 기록 API 웹 스토리지 API 웹 작업자 API 웹 가져오기 API 웹 지리적 위치 API

JS 아약스

AJAX 소개 AJAX XMLHttp AJAX 요청 AJAX 응답 AJAX XML 파일 AJAX PHP AJAX ASP AJAX 데이터베이스 AJAX 애플리케이션 AJAX 예제

JS JSON

JSON 소개 JSON 구문 JSON 대 XML JSON 데이터 유형 JSON 구문 분석 JSON 문자열화 JSON 객체 JSON 배열 JSON 서버 JSON PHP JSON HTML JSON JSONP

JS 대 jQuery

jQuery 선택기 제이쿼리 HTML 제이쿼리 CSS 제이쿼리 DOM

JS 그래픽

JS 그래픽 JS 캔버스 JS 플로틀리 JS 차트.js JS 구글 차트 JS D3.js

JS 예제

JS 예제 JS HTML DOM JS HTML 입력 JS HTML 객체 JS HTML 이벤트 JS 브라우저 JS 편집기 JS 연습 JS 퀴즈 JS 인증서

JS 참조

자바스크립트 객체 HTML DOM 객체


자바스크립트 성능


JavaScript 코드의 속도를 높이는 방법.


루프에서 활동 줄이기

루프는 프로그래밍에서 자주 사용됩니다.

for 문을 포함하여 루프의 각 문은 루프가 반복될 때마다 실행됩니다.

루프 외부에 배치할 수 있는 명령문 또는 할당은 루프 실행을 더 빠르게 만듭니다.

나쁜:

for (let i = 0; i < arr.length; i++) {

더 나은 코드:

let l = arr.length;
for (let i = 0; i < l; i++) {

잘못된 코드는 루프가 반복될 때마다 배열의 길이 속성에 액세스합니다.

더 나은 코드는 루프 외부의 length 속성에 액세스하고 루프를 더 빠르게 실행합니다.


DOM 액세스 줄이기

HTML DOM에 액세스하는 것은 다른 JavaScript 문에 비해 매우 느립니다.

DOM 요소에 여러 번 액세스할 것으로 예상되는 경우 한 번 액세스하고 로컬 변수로 사용합니다.

예시

const obj = document.getElementById("demo");
obj.innerHTML = "Hello";


DOM 크기 줄이기

HTML DOM의 요소 수를 작게 유지하십시오.

이렇게 하면 항상 페이지 로드가 향상되고 특히 작은 장치에서 렌더링(페이지 표시) 속도가 빨라집니다.

DOM을 검색하려는 모든 시도(예: getElementsByTagName)는 더 작은 DOM의 이점을 얻을 것입니다.


불필요한 변수 피하기

값을 저장할 계획이 아니라면 새 변수를 생성하지 마십시오.

종종 다음과 같이 코드를 바꿀 수 있습니다.

let fullName = firstName + " " + lastName;
document.getElementById("demo").innerHTML = fullName;

이것으로:

document.getElementById("demo").innerHTML = firstName + " " + lastName;

자바스크립트 로딩 지연

스크립트를 페이지 본문 하단에 배치하면 브라우저가 페이지를 먼저 로드할 수 있습니다.

스크립트가 다운로드되는 동안 브라우저는 다른 다운로드를 시작하지 않습니다. 또한 모든 구문 분석 및 렌더링 활동이 차단될 수 있습니다.

HTTP 사양은 브라우저가 두 개 이상의 구성 요소를 병렬로 다운로드해서는 안 된다고 정의합니다.

대안은 defer="true"스크립트 태그에서 사용하는 것입니다. defer 속성은 페이지 구문 분석이 완료된 후 스크립트를 실행해야 하지만 외부 스크립트에서만 작동하도록 지정합니다.

가능하면 페이지가 로드된 후 코드로 페이지에 스크립트를 추가할 수 있습니다.

예시

<script>
window.onload = function() {
  const element = document.createElement("script");
  element.src = "myScript.js";
  document.body.appendChild(element);
};
</script>

와 함께 사용하지 마십시오

with키워드 를 사용하지 마십시오 . 속도에 부정적인 영향을 미칩니다. 또한 JavaScript 범위를 복잡하게 만듭니다.

with키워드는 엄격 모드에서 허용되지 않습니다 .