ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScript にポインタはありますか?

JavaScript にポインタはありますか?

WBOY
WBOYオリジナル
2022-07-01 15:36:513268ブラウズ

JavaScript にはポインタはなく、参照のみであり、ポインタとはメモリのアドレスを指します。ポインタを操作できるということは、プログラムが直接メモリを操作できることを意味します。ただし、JavaScript スクリプトを実行すると、 Web ページでは、ブラウザもオペレーティング システムも JavaScript の使用を許可していません。メモリを操作するため、JavaScript スクリプトにはポインタの概念がなく、メモリはブラウザによってのみ割り当てられます。

JavaScript にポインタはありますか?

このチュートリアルの動作環境: Windows 10 システム、JavaScript バージョン 1.8.5、Dell G3 コンピューター。

JavaScript にはポインターはありますか?

JS にはポインターはなく、参照のみがあります。

簡単な判断基準は、ポインタは操作できるが、JS は操作できないということです。

ポインタは実際にはメモリのアドレスです。ポインタを操作できるということは、プログラムがメモリを直接操作できることを意味します。これは、Web ページ上で実行される 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"]

JavaScript にポインタはありますか?

#知識を広げる:

ポインタは C 言語の重要な概念および機能であり、C 言語を習得する上で難しい部分でもあります。ポインタはメモリ アドレスです。ポインタ変数はメモリ アドレスを格納するために使用される変数です。同じ CPU アーキテクチャでは、異なるタイプのポインタ変数が同じ記憶ユニット長を占有しますが、データを格納する変数はデータのタイプに応じて異なります。占有スペースも異なります。ポインタを使用すると、データ自体を操作できるだけでなく、データが格納されている変数アドレスも操作できます。

ポインタは、メモリ内のデータの位置を記述し、記憶領域を占有するエンティティと、この領域の開始位置からの相対距離値をマークします。 C/C 言語では、ポインタは一般にポインタ変数とみなされます。ポインタ変数の内容には、それが指すオブジェクトの最初のアドレスが格納されます。指すオブジェクトには、変数 (ポインタ変数も変数です)、配列、機能などがストレージスペースを占有します。

【関連する推奨事項:

JavaScript ビデオ チュートリアル Web フロントエンド ]

以上がJavaScript にポインタはありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。