>  기사  >  웹 프론트엔드  >  자바스크립트에 포인터가 있나요?

자바스크립트에 포인터가 있나요?

WBOY
WBOY원래의
2022-07-01 15:36:513268검색

JavaScript에는 포인터가 없으며 포인터만 참조합니다. 포인터를 작동할 수 있다는 것은 프로그램이 메모리를 직접 작동할 수 있음을 의미합니다. 브라우저나 운영 체제에서는 JavaScript가 메모리를 작동하도록 허용하므로 JavaScript 스크립트에는 포인터 개념이 없으며 메모리는 브라우저에서만 할당할 수 있습니다.

자바스크립트에 포인터가 있나요?

이 튜토리얼의 운영 환경: Windows 10 시스템, JavaScript 버전 1.8.5, Dell G3 컴퓨터.

JavaScript에 포인터가 있나요?

JS에는 포인터가 없고 참조만 있습니다.

판단의 간단한 기준은 다음과 같습니다. 포인터는 ++로 작동할 수 있지만 JS는 그렇지 않습니다.

포인터는 실제로 메모리 주소입니다. 포인터를 조작할 수 있다는 것은 프로그램이 메모리를 직접 조작할 수 있다는 것을 의미합니다. 이는 웹 페이지에서 실행되는 js 스크립트에 매우 위험하므로 js 스크립트는 이를 허용하지 않습니다. 포인터 개념을 가질 수 없으며 브라우저에 의해 할당된 메모리만 참조할 수 있습니다. 이 메모리의 물리적 주소는 적어도 js 프로그래머에게는 불투명합니다.

예제는 다음과 같습니다.

let a = 888
let b = a
a = 999
console.log(a, b) // 999 888 对于『基本类型』的变量,a,b 相互是不影响的

그러나 복합형 변수의 경우 변수는 실제로 "포인터"를 저장합니다. d=c이면 동일한 메모리 주소를 가리키므로 c가 변경되면 d는 또한 변경되었습니다: let c = ['a', 'b', 'c']

let d = c
d === c // true 都指向同一个『指针』呢
c[0] = 'x'
console.log(d) // ["x", "b", "c"]
而这样let c = ['a', 'b', 'c']
let d = ['a', 'b', 'c'] // or 简写成 d = [...c]
d === c // false 变量 d 重新赋值了呢,所以和 c 就不是一伙的啦!
c[0] = 'x'
console.log(d) // ["a", "b", "c"]

자바스크립트에 포인터가 있나요?

확장된 지식:

포인터는 C 언어의 중요한 개념이자 특성입니다. C 언어를 마스터하는 것이 더 어려운 부분입니다. 포인터는 메모리 주소를 저장하는 데 사용되는 변수입니다. 동일한 CPU 아키텍처에서는 다양한 유형의 포인터 변수가 동일한 저장 단위 길이를 차지하며, 데이터를 저장하는 변수는 데이터 유형에 따라 다릅니다. 차지하는 공간도 다릅니다. 포인터를 사용하면 데이터 자체에 대해 작업을 수행할 수 있을 뿐만 아니라 데이터가 저장된 변수 주소에 대해서도 작업을 수행할 수 있습니다.

포인터는 저장 공간을 차지하는 개체와 이 공간의 시작 위치로부터의 상대적인 거리 값을 표시하여 메모리 내 데이터의 위치를 ​​설명합니다. C/C++ 언어에서 포인터는 일반적으로 포인터 변수로 간주됩니다. 포인터 변수의 내용은 가리키는 개체의 첫 번째 주소를 저장합니다. 포인터 변수는 변수이기도 합니다. , 기능 등이 저장 공간을 차지합니다.

【관련 추천: javascript 비디오 튜토리얼, web front-end

위 내용은 자바스크립트에 포인터가 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.