자바스크립트는 가치에 의한 전달 언어입니다. 그러나 객체의 경우 값은 참조입니다. 따라서 예를 들어 int를 매개변수로 함수에 전달하고 함수에서 해당 값을 증가시키면 해당 값은 호출자의 컨텍스트에서 업데이트되지 않습니다 - 예시 let i = 0; function increment(x) { x = x + 1 console.log(x) } increment(i) console.log(i) 출력 1 0 객체를 전달하고 함수 컨텍스트에서 해당 객체의 참조를 업데이트하면 객체에 영향을 미치지
자바스크립트는 가치에 의한 전달 언어입니다. 그러나 객체의 경우 값은 참조입니다. 따라서 예를 들어 int를 매개변수로 함수에 전달하고 함수에서 해당 값을 증가시키면 해당 값은 호출자의 컨텍스트에서 업데이트되지 않습니다 - 예시 let i = 0; function increment(x) { x = x + 1 console.log(x) } increment(i) console.log(i) 출력 1 0 객체를 전달하고 함수 컨텍스트에서 해당 객체의 참조를 업데이트하면 객체에 영향을 미치지
Object.assign() 메서드는 하나 이상의 소스 개체에서 대상 개체로 개체의 모든 자체 속성(열거 가능한 경우에만) 값을 복사하는 데 사용됩니다. 대상 개체를 반환합니다. 예시 const targetObj = { a: 1, b: 2 }; const sourceObj = { b: 4, c: 5 }; const returnedTarget = Object.assign(targetObj, sourceObj); console.log(targetObj); console.log(returnedTarget); console.log(retu
Object.assign() 메서드는 하나 이상의 소스 개체에서 대상 개체로 개체의 모든 자체 속성(열거 가능한 경우에만) 값을 복사하는 데 사용할 수 있습니다. 예를 들어 소스 개체의 모든 속성을 대상 개체에 복사하려면 다음 코드를 사용할 수 있습니다. - 예시 const targetObj = { a: 1, b: 2 }; const sourceObj = { b: 4, c: 5 }; const returnedTarget = Object.assign(targetObj, sourceObj); console.log(targetObj);
Web Garden은 여러 프로세스로 구성된 웹 호스팅 시스템입니다. 이는 여러 프로세스를 실행하는 단일 서버가 있음을 의미합니다. 이러한 유형의 호스팅은 웹 애플리케이션에 논리적 확장성을 제공합니다. Web Farm은 여러 컴퓨터로 구성된 웹 호스팅 시스템입니다. 이것은 웹 가든이 단일 서버에서 실행되는 반면 웹 팜은 여러 서버에서 실행된다는 점에서 웹 가든과 다릅니다. 이것은 웹 응용 프로그램에 물리적 확장성을 제공합니다. 이러한 유형의 설정은 로드 밸런서를 사용하여 여러 서버의 상태를 유지하면서 이러한 호출을 전달하는 전용
WeakMap 개체는 키가 약하게 참조되는 키/값 쌍의 모음입니다. 키는 객체여야 하며 값은 임의의 값일 수 있습니다. 위키피디아에 따르면 약한 참조는 강한 참조와 달리 가비지 수집기가 수집하는 참조 객체를 보호하지 않는 참조입니다. 약한 참조로만 참조되는 개체(객체에 도달하는 모든 참조 체인에는 링크로 하나 이상의 약한 참조가 포함됨)는 약한 참조로 간주되며 연결할 수 없는 것으로 처리될 수 있으므로 언제든지 수집될 수 있습니다. 약한 맵을 사용하여 해결할 수 있는 메모리 누수를 일으킬 수 있는 일부 사용 사례 - 특정
다음은 자바스크립트의 weakMap 인스턴스에서 사용할 수 있는 몇 가지 방법입니다 - 1. WeakMap.prototype.delete(키) 키와 관련된 모든 값을 제거합니다. WeakMap.prototype.has(key)는 나중에 false를 반환합니다. 2. WeakMap.prototype.get(키) 키와 관련된 값을 반환하거나 없는 경우 정의되지 않은 값을 반환합니다. 3. WeakMap.prototype.has(키) 값이 WeakMap 개체의 키에 연결되었는지 여부를 확인하는 부울을 반환합니다. 4. Wea
weakMap의 clear 메소드는 WeakMap 객체에서 모든 키/값 쌍을 제거합니다. 이 메서드는 사양에서 제거되었으며 Clear 메서드에 대한 지원이 추가된 WeakMap 개체를 래핑하여 다시 추가할 수 있습니다. 예시 class ClearableWeakMap { constructor(init) { this._wm = new WeakMap(init) } clear() { this._
JavaScript 유형 배열은 배열과 유사한 객체이며 원시 바이너리 데이터에 액세스하기 위한 메커니즘을 제공합니다. 배열 객체는 동적으로 늘어나고 줄어들며 모든 JavaScript 값을 가질 수 있습니다. JavaScript 엔진은 이러한 배열이 빠르도록 최적화를 수행합니다. 참고 − 유형이 지정된 배열에서 Array.isArray()를 호출하면 false가 반환되므로 유형이 지정된 배열을 일반 배열과 혼동해서는 안 됩니다. 또한 일반 배열에 사용할 수 있는 모든 방법이 유형이 지정된 배열에서 지원되는 것은 아닙니다. 자바
프로그래밍 언어에 관계없이 메모리 수명 주기는 거의 항상 동일합니다. − 필요한 메모리 할당 할당된 메모리 사용(읽기, 쓰기) 더 이상 필요하지 않을 때 할당된 메모리 해제 두 번째 부분은 모든 언어에서 명시적입니다. 할당된 메모리의 사용은 개발자가 수행해야 합니다. 첫 번째 부분과 마지막 부분은 C와 같은 저급 언어에서는 명시적이지만 JavaScript와 같은 고급 언어에서는 대부분 암시적입니다. 따라서 JavaScript에서 메모리를 할당하거나 해제하는 명시적인 방법이 없습니다. 객체를 초기화하기만 하면 해당 객체에 대
JavaScript에서 이중 및 삼중 등호는 두 피연산자 간의 비교에 사용됩니다. 두 같음의 차이는 다음과 같습니다. Sr. 아니요. 키 이중 등호(==) 삼중 등호(===) 1 이름 지정 이중 등호는 등호 연산자로 명명됨 . 삼중 등호는 Identity / Strict Equality Operator로 명명됨 . 2 비교 이중 등호는 유형 변환으로 사용됨 전환 삼중 등호가 엄격한 변환으로 사용됨 피연산자에서 변환을 수행하지 않고. 3 구문 이중 등호에는 (a ==b)와 같은 비교 구문이 있습니다. 삼중 등호에는 (a ===
가비지 수집(GC)은 자동 메모리 관리의 한 형태입니다. 가비지 수집기 또는 그냥 수집기는 프로그램에서 더 이상 사용하지 않는 개체가 차지하는 메모리 또는 가비지를 회수하려고 시도합니다. 일부 메모리가 더 이상 필요하지 않은지 여부를 자동으로 찾는 일반적인 문제는 결정할 수 없습니다. 결과적으로 가비지 수집기는 일반적인 문제에 대한 솔루션의 제한을 구현합니다. 가비지 수집 알고리즘이 의존하는 주요 개념은 참조 개념입니다. 메모리 관리 컨텍스트 내에서 전자가 후자에 액세스할 수 있는 경우 해당 개체는 다른 개체를 참조한다고 합니다(
두 개의 개별 개체가 서로에 대한 참조를 전달하면 순환 참조가 발생합니다. 이전 브라우저에서는 순환 참조가 메모리 누수의 원인이었습니다. 이제 주기 및 순환 종속성을 잘 처리할 수 있는 가비지 수집 알고리즘이 개선되어 더 이상 문제가 되지 않습니다. 그러나 순수한 디자인 관점에서 순환 참조는 여전히 나쁜 것이고 코드 냄새가 납니다. 순환 참조는 서로를 참조하는 2개의 객체가 밀접하게 결합되어 있으며 한 객체에 대한 변경 사항이 다른 객체에도 변경이 필요할 수 있음을 의미합니다. 순환 참조 피하기 JS에서 순환 참조를 피할 수
두 개의 개별 개체가 서로에 대한 참조를 전달하면 순환 참조가 발생합니다. 이전 브라우저에서는 순환 참조가 메모리 누수의 원인이었습니다. 이제 주기 및 순환 종속성을 잘 처리할 수 있는 가비지 수집 알고리즘이 개선되어 더 이상 문제가 되지 않습니다. 그러나 순수한 디자인 관점에서 순환 참조는 여전히 나쁜 것이고 코드 냄새가 납니다. 순환 참조는 서로를 참조하는 2개의 객체가 밀접하게 결합되어 있으며 한 객체에 대한 변경이 다른 객체에도 변경이 필요할 수 있음을 의미합니다. 순환 참조 피하기 JS에서 순환 참조를 피할 수 있는
exec가 그룹을 캡처하고 입력에 정규식을 일치시키는 동안 일치를 테스트하고 부울을 반환합니다. 정규식과 일치하도록 입력 문자열만 테스트해야 하는 경우 RegExp.test가 가장 적합합니다. 조건에 적합하도록 부울 반환 값을 제공합니다. RegExp.exec는 모든 캡처 그룹과 일치하는 인덱스가 포함된 배열과 같은 반환 값을 제공합니다. 따라서 매치 후 캡처된 그룹이나 인덱스로 작업해야 할 때 유용합니다. 예시 console.log(/^([a-z]+) ([A-Z]+)$/.exec("hello WORLD"))
클라이언트 측(브라우저)에서는 JS에서 파일을 읽거나 쓸 수 없습니다. 이것은 Node.js의 fs 모듈을 사용하여 서버 측에서 수행할 수 있습니다. 파일 시스템에서 파일을 읽고 쓰는 동기화 및 비동기 기능을 제공합니다. node.js의 fs 모듈을 사용하여 파일을 읽고 쓰는 예를 살펴보겠습니다. 다음 코드를 포함하는 main.js라는 js 파일을 생성해 보겠습니다. - var fs = require("fs"); console.log("Going to write into existing file"
JavaScript에서 사용할 수 있는 parseInt 함수에는 다음과 같은 서명이 있습니다. - parseInt(string, radix); 여기서 매개변수는 다음과 같습니다. - 문자열 - 구문 분석할 값. 이 인수가 문자열이 아니면 ToString 메서드를 사용하여 인수로 변환됩니다. 이 인수의 선행 공백은 무시됩니다. 기수 - 문자열의 기수(수학적 숫자 시스템의 기수)를 나타내는 2에서 36 사이의 정수입니다. 따라서 이 방법을 사용하여 문자열과 기수를 전달하고 밑이 2에서 36인 숫자를 정수로 변환할 수 있습니다
JavaScript에서 사용할 수 있는 팝업 상자에는 3가지 유형이 있습니다. 이들은 - 1. 경고 − Window.alert() 메서드는 선택적으로 지정된 내용과 확인 버튼이 있는 경고 대화 상자를 표시합니다. 예를 들어, 다음 스크립트를 실행하면 확인 버튼이 있는 이것은 경고입니다라는 내용의 경고 상자가 열립니다. 예시 <script> alert("This is a alert"); </script> 경고 대화 상자는 메시지 승인 외에 사용자 측의 응답이 필요하
JavaScript에서 내부 HTML을 사용하면 다음과 같은 단점이 있습니다. - 전체 innerHTML을 재분석하지 않고는 추가 지원이 없습니다. 이로 인해 innerHTML을 직접 변경하는 속도가 매우 느려집니다. 예를 들어, html 태그에 추가하려면 다음을 수행해야 합니다. - let myDiv = document.querySelector('#myDiv') // Reparses the whole myDiv tag. myDiv.innerHTML += '<p>Added new tag</p
클라이언트 시스템에서 운영 체제를 감지하기 위해 스크립트는 navigator.appVersion 또는 navigator.userAgent의 값을 분석할 수 있습니다. 간단한 스크립트를 사용하여 클라이언트 OS를 감지하는 방법을 살펴보겠습니다. 예시 var operatingSystem = "Unknown OS"; // Check For Windows if (navigator.appVersion.indexOf("Win") !=- 1) operatingSystem = "Windows&quo