엄격한 모드 엄격한 모드는 ECMAScript 5에서 javascript에 도입되었습니다. 엄격 모드 자바스크립트 자동 오류를 사용하면 오류가 발생하므로 쉽게 감지할 수 있습니다. 이렇게 하면 자바스크립트 디버깅이 훨씬 쉬워지고 개발자가 불필요한 실수를 피할 수 있습니다. 엄격 모드에서는 선언되지 않은 변수가 발생하면 예외가 발생하므로 메모리 누수가 크게 줄어듭니다. 엄격 모드가 필요한 코드 앞에 use strict를 사용하여 엄격 모드를 활성화할 수 있습니다. 다음 예제에서는 두 개의 변수가 사용되었습니다. 하나는 함수 외
실시간 세계에서 자바스크립트에는 다른 언어에서 볼 수 있는 전통적인 클래스가 없습니다. 객체와 생성자가 있습니다. Object.freeze() 개체를 고정하는 데 도움이 되는 많은 생성자 메서드 중 하나입니다. 개체를 고정하면 개체에 새 속성을 추가할 수 없으며 개체가 자체 속성을 변경하는 것도 방지할 수 있습니다. Object.freeze() 항상 열거 가능성, 구성 가능성, 쓰기 가능성 및 개체의 프로토타입을 보존하려고 노력할 것입니다. 고정된 복사본을 만들지 않습니다. 응용 프로그램 1) 고정() 개체 및 배열을 고정하는
Fisher-Yates 셔플 알고리즘 이 알고리즘은 배열의 요소를 섞는 것입니다. 배열의 요소를 섞기 위해 자체 논리를 작성할 수 있지만 많은 개발자는 F 아이셔-예이츠 최신 셔플 알고리즘은 배열의 요소를 섞는 가장 좋은 방법입니다. 이 알고리즘에는 다음과 같은 단계가 있습니다. 따라야 할 단계 이 알고리즘에 따르면 배열을 뒤에서 앞으로 반복해야 합니다. 예를 들어, 다음 예에서 인덱스 0에서 인덱스 7까지 8개의 요소(A,B,C,D,E,F,G,H)로 구성된 배열이 있습니다. 따라서 첫 번째 루프 패스는 요소에 영향을 미칩니다.
다형성 다형성 객체 지향 프로그래밍(OOP)의 핵심 중 하나입니다. 특정 제공된 개체와 동작을 공유하거나 재정의할 수 있는 방식으로 개체를 디자인하는 데 도움이 됩니다. 다형성 상속을 활용합니다. 이를 위해. 다음 예제에서는 cricket 및 테니스 이(가) select를 재정의했습니다. 상위 개체 game에서 호출된 메서드 및 출력에 표시된 대로 각각 새 문자열을 반환했습니다. 반면에 다른 자식 개체는 select 를 재정의하는 대신 축구 메소드, 공유(상속) 메소드 및 출력에 표시된 대로 상위 문자열을 표시했습니다.
카레 카레 여러 인수가 있는 함수를 단일 인수로 함수의 시퀀스로 평가하는 기술입니다. 모든 인수가 충족될 때까지 세 번째 함수 등을 사용하는 새 함수를 반환합니다. 커링 기능 사용 a) 동일한 변수를 반복해서 전달하는 것을 방지하는 데 도움이 됩니다. b) 이벤트 처리에 매우 유용합니다. 구문: function Myfunction(a) { return (b) => { &
메모리 주기 프로그래밍 언어에 관계없이 메모리 주기는 모든 프로그래밍 언어에서 거의 동일합니다. 메모리 수명 주기에는 3단계가 있습니다. 1) 메모리 할당 . 2) 할당된 메모리 사용(읽기 또는 쓰기) 3) 할당된 메모리가 필요 없을 때 해제합니다. 첫 번째 부분과 마지막 부분은 저급 언어에서는 직접 연결되지만 JavaScript와 같은 고급 언어에서는 간접적으로 연결됩니다. 1) 자바스크립트에서 메모리 할당 JavaScript는 가비지 수집 언어라고 합니다. 즉, 변수가 선언되면 자동으로 메모리를 할당합니다. 선언된
참조 카운팅 가비지 수집 이것은 가장 간단한 가비지 수집 알고리즘입니다. 이 알고리즘은 참조가 남아 있지 않은 개체를 찾습니다. 개체에 연결된 참조가 없는 경우 개체는 가비지 수집에 적합합니다. 가비지 수집은 아래 예에 설명되어 있습니다. 예시 var obj = { x: { y: 2 } }; // 2 objects created. One is referenced by the
자바스크립트의 메모리 누수 JavaScript는 가비지 수집 언어라고 합니다. 즉, 변수가 선언되면 자동으로 메모리를 할당합니다. 선언된 변수에 대한 참조가 더 이상 없으면 할당된 메모리가 해제됩니다. 메모리 누수나 대부분의 메모리 관련 문제는 메모리를 해제하는 동안 발생합니다. 몇 가지 일반적인 JavaScript 누출 1) 우연한 전역 변수 선언되지 않은 변수가 참조되면 javascript는 전역 개체에 새 변수를 만듭니다. 다음 예제-1에서 언어의 목적은 myArray 함수의 변수만 참조하는 것이라고 가정합니다. var
순환 참조 순환 참조는 각 개체에 1의 참조 카운트를 제공하여 두 변수가 서로 참조할 때 형성됩니다. 순수 가비지 수집 시스템에서는 관련된 변수에 참조가 없을 때 순환 참조가 문제가 되지 않을 수 있습니다. 이 시나리오에서 선언된 변수는 가비지 수집됩니다. 참조 카운팅 시스템에서는 참조 카운트가 0일 수 없기 때문에 객체 중 어느 것도 파괴되지 않습니다. 참조 카운팅과 가비지 컬렉션을 사용하는 하이브리드 시스템에서는 시스템이 순환 참조를 식별하지 못하기 때문에 메모리 누수가 발생합니다. 예 다음 예제는 javascript 객체
병합 정렬 병합 정렬은 분할 정복 유형 정렬 알고리즘의 한 예입니다. 병합 정렬의 입력은 일반적으로 최소에서 최대로 정렬되어야 하는 일부 요소의 배열입니다. 병합 정렬에서 따라야 할 단계 병합 정렬은 배열을 두 개의 하위 배열로 나눈 다음 나중에 각 배열을 다른 두 개의 배열로 나누는 식으로 단일 요소 배열이 많이 남을 때까지 계속됩니다. 예를 들어 다음 예에서 배열 [4,7,5,9,1,3,8,2]는 [4], [7], [5], [9]와 같은 단일 배열 요소로 나뉩니다. [1], [3], [8], [2]. 두 개의 배열을 비교하
마크 및 스윕 알고리즘 Mark and Sweep 알고리즘은 더 이상 필요하지 않은 개체보다 도달할 수 없는 개체를 찾습니다. 이 알고리즘은 참조 카운팅 알고리즘을 개선한 것입니다. 이 알고리즘은 실제로 3가지 중요한 단계를 거칩니다. 루트:일반적으로 루트는 코드에서 사용되는 전역 변수입니다. 자바스크립트의 윈도우 객체는 루트 역할을 할 수 있습니다. 이 알고리즘은 전역 개체 루트를 사용하여 개체에 연결할 수 있는지 또는 연결할 수 없는지 여부를 찾습니다. 이 알고리즘은 모든 루트와 그 자식을 모니터링합니다. 모니터링하는 동안
복제 자바스크립트에서 복제는 이미 존재하는 개체가 생성되지 않도록 개체 속성을 다른 개체에 복사하는 것뿐입니다. 자바스크립트 개체를 복제하는 몇 가지 방법이 있습니다. 1) 각 속성을 반복하고 새 개체에 복사합니다. 2) JSON 방식 사용. 3) object.assign() 메소드 사용. 각 방법에 대해 개별적으로 논의해 보겠습니다. a) 각 속성을 반복하고 새 개체에 복사합니다. 이것은 각 속성이 반복되고 새 개체에 복사되는 javascript 개체를 복제하는 오래된 방법입니다. 간단한 방법이지만 거의 사용되지 않습
지도 Map은 키 값 쌍을 보유하고 키의 실제 삽입 순서를 기억합니다. 지도는 고유한 값만 저장할 수 있습니다. 구문 new Map([iterable]) 사례-1:지도 부재 Map이 없는 경우 javascript 객체는 하나의 키 객체만 승인하므로 여러 키를 제공하면 마지막 키만 기억됩니다. 다음 예에서는 및 b와 같은 많은 키를 제공했음에도 불구하고 b만 기억되고 출력으로 표시됩니다. 따라서 이러한 단점을 제거하기 위해 Map이 자바스크립트에 존재하게 되었습니다. 예시 <html> <body> <s
분리된 Dom 요소 분리된 DOM 요소는 DOM에서 제거되었지만 JavaScript로 인해 메모리가 여전히 유지되는 요소입니다. 즉, 요소에 변수 또는 개체에 대한 참조가 있는 한 DOM에서 삭제된 후에도 가비지 수집되지 않습니다. DOM은 트리의 노드에 대한 참조가 가비지 수집에서 전체 트리를 중지시키는 이중 연결 트리와 같습니다. 자바스크립트에서 DOM 요소를 생성하는 예를 살펴보겠습니다. 요소를 만든 후에는 요소를 삭제하지만 요소를 보유하고 있는 변수를 삭제하는 것을 잊으십시오. 이 시나리오는 특정 DOM 요소뿐만 아니라
Array.some() Array.some()은 주어진 요소가 제공된 함수(사용자가 제공한 기능)에 의해 구현된 테스트를 통과했는지 확인합니다. 모든 요소가 테스트를 통과하면 true를 반환하는 Array.Every()와 달리 Array.some()은 배열의 한 요소가 테스트를 통과하더라도 true를 반환하고 모든 요소가 테스트에 실패하면 false를 반환합니다. 다음 예제에서 Array.some()은 배열의 급여 요소가 지정된 급여 제한(15000)을 초과했는지 확인하고 실행합니다. 부울(참, 거짓) 출력. 예 <html
Array.find() Array.find()는 제공된 테스트 조건(사용자 지정 조건)을 충족하는 배열의 첫 번째 요소 값을 반환하는 데 사용됩니다. 제공된 테스트 조건이 실패하면 array.find()는 정의되지 않은 값을 반환합니다. 다음 예제에서 array.find( ) 배열의 가격 요소가 주어진 테스트 가격(12000)보다 큰지 확인합니다. 제공된 테스트 조건이 true이면 테스트를 통과한 첫 번째 값이 실행되고 정의되지 않은 경우 실행됩니다. 예시 <html> <body> <p id="
Array.findIndex() Array.findIndex()는 제공된 함수로 구현된 테스트를 통과한 배열 요소의 첫 번째 인덱스를 반환합니다. 이 메서드는 배열에 있는 각 요소에 대해 한 번씩 함수를 실행합니다. 함수의 조건이 한 번 충족되면 조건을 만족하는 첫 번째 요소의 인덱스가 반환되고 값이 -1이 아니면 반환됩니다. 요소가 제공된 조건을 충족하면 findIndex()는 다른 값을 확인하지 않습니다. 다음 예에서 findIndex() 메서드는 급여 요소가 주어진 급여 15000보다 큰지 확인합니다. 조건을 충족하는 첫
Math.abs() Math.abs()는 숫자의 절대값을 제공합니다. 즉, p if p > 0
Math.pow() Math.pow() JavaScript의 함수는 숫자의 거듭제곱, 즉 숫자의 값을 지수로 올리는 데 사용됩니다. 이 방법은 두 개의 매개변수를 허용합니다. 하나는 기본이고 다른 하나는 지수입니다. 정수, 분수, 음수 등과 같이 어떤 종류의 매개변수를 사용하든 상관없이 모든 값을 취할 수 있고 작업을 진행할 수 있습니다. 구문 Math.pow(base, exponent) 예시-1 다음 예제에서는 두 개의 양수 값을 사용합니다. 첫 번째 매개변수(밑수)는 9이고 두 번째 매개변수(지수)는 3입니다. Math.po
substr() substr() 메서드는 지정된 인덱스의 문자에서 시작하여 문자열의 일부를 추출하고 지정된 문자 수를 반환합니다. 원래 문자열을 변경하지 않습니다. 구문 substr() 메소드는 두 개의 매개변수를 허용합니다. 하나는 시작이고 다른 하나는 길이입니다. str.substr(start , length) 인수 a) 시작:시작은 기본 문자열에서 하위 문자열을 추출할 시작 인덱스를 정의합니다. b) 길이:길이는 주어진 문자열의 시작 부분부터 추출할 문자의 수를 정의합니다. 함수에 대한 두 번째 인수가 정의되지 않