この記事によると
http://www.mediaevent.de/javascript/globale-lokale-variablen.html
グローバル変数は JS ではかなり危険です。
ドイツ語で申し訳ありませんが、記事の 2 つの主要なステートメントを指摘します。
最初の文は、head ステートメントの 2 番目の段落にあります。
「JS では、名前を介して他のスクリプトからアクセスされる可能性があるため、グローバル変数は危険です」などと書かれています。
しかし、この記事では、これはランダムに発生する可能性があるようです。それは確かに期待される動作ではありませんね。
しかし、私がもっと恐ろしいのは、最後から 2 番目の文です。グローバル変数を宣言する関数を複数回呼び出すと、メモリリークが発生することが予測されます。しかし、名前がまだ同じである場合、どうしてこれが起こるのでしょうか? 同じ名前でグローバルに宣言された複数の変数がどのように存在する可能性がありますか? それとも、この記事はおそらく「半知識」の誰かによって書かれているのでしょうか? それとも、グローバルとローカルの違いにまったく慣れていない人に宛てたものでしょうか? または、JS は本当にこのように動作していますか?
具体的な例:
私のページにログインした人に、ランダムに生成されたトークンを作成してもらい、ログインをクリックして送信してもらいたいです。他のボタンごとに、このトークンが別の機能によってアクセスされ、それを送信するだけで、新しいログインのためにキーが再生成されるようになります。
そのキーについては、ある関数によって宣言され、別の関数によって返されるグローバル変数を使用することを考えていました。しかし、キーを複数回生成/再生成する可能性があるため、これによりメモリリークが発生しますか? それとも、私が言及しているこの記事は、おそらくただ脚色しただけなのでしょうか? これが実際に JS の動作である場合、私の場合、さまざまな関数から変数にアクセスできるようにする良い方法は何でしょうか?