2015-12-14 8 views
17

多分私には明らかなものがありませんが、JavaScriptを学び、Chromeコンソールで多くのテストを行っています。私が他のスレッド(localStorage.clear())で見たコマンドの数をクリアしたり使用したりしても、私が割り当てた変数や変数を与えても、それでも表示されます。Chromeコンソールの明確な割り当てと変数

たとえば、私はvar name = "Bob"のようなことをします。

enter image description here

Iはっきりと..それを再度開く...コンソールを閉じ..名前の値を探し、それはまだボブです。

enter image description here

私は私がしたいときにこれをクリアしたいと思います。何が最善の方法ですか?

+3

コンソールをクリアして開くとページコンテキストが再活性化しません。ページを更新する必要があります – madox2

+0

["' clear() ':コンソールの出力領域をクリアします。]](https://developer.mozilla.org/en-US/docs/Tools/Web_Console/The_command_line_interpreter) – epascarello

+1

F5からページを更新。 [グローバルな 'name'変数を使わないでください(https://stackoverflow.com/q/10523701/1048572)。 – Bergi

答えて

15

は、Webブラウザのためwindowあるグローバル実行コンテキスト、です。

コンソールをclear()とき、あなたがwindowに接続されているオブジェクトをクリアしていない、これらの操作の全て見える歴史を削除するにはChromeを語っています。 、繰り返しdeleteを介して複数のオブジェクトを削除することのオーバーヘッドが多すぎる場合は、

delete name; 
name //=> undefined 

オブジェクトのプロパティとして各値を格納します。その参照によって、あなたがしなければならない手動delete各オブジェクトにこれを行うには

例えばあなたが1つのステートメントですべてのプロパティと一緒に削除できることdata、:あなたは、その変数を削除したい場合は

var data = {}; 
data.name = 'Bob'; 
data.age = 60; 
delete data; 
data.name //=> ReferenceError: data is not defined 
data.age //=> ReferenceError: data is not defined 
+1

ページを再読み込みしてもそれがクリアされません。名前を削除する。しかし、動作します。むしろ個々の割り当てを削除することなく完全にデッキをクリアする方法があります。私はリフレッシュがうまくいかない理由はわかりません。それは一般的な答えのようです。 – spex5

+0

あなたは爽やかなことがうまくいかないことは間違いありません。すべてのデータをオブジェクトに添付することができます(例: 'data = {}; data.name = 'Bob'; '。少なくともあなたは 'delete data;'をしなければなりません。 – sdgluck

+0

Chromeのコンソールが非常に矛盾しているようです。リフレッシュするためにabout:blankというページを使用している場合、変数をクリアするように見えますが、時にはそうではありません。いつも動作しているように見えるのは、ブラウザを閉じて再度開くことです。しかたがない。今は十分です。 – spex5

4

コンソールをクリアしても、ユーザーインターフェイスからデータをクリアするのではなく、メモリから変数をクリアすることはありません。

ページをリロードすると、コンソールデータが消去されます。私はあなたがちょうどテストして、JavaScriptを学んでいることを述べたように、うまくいくはずです。

希望に役立ちます!デベロッパーコンソール内の任意の変数や関数を宣言するときに影響を与えている何

7

この問題に対する簡単な解決策は、任意のコードをラップすることであるあなたドン直ちに呼び出される関数式(IIFE)でグローバルスコープに入りたくない。関数が終了したときに、関数のスコープに割り当てられたすべての変数は割り当てが解除されています

(function() { 

    // Put your code here... 

})(); 

IIFEs詳細は:ES6でhttps://en.wikipedia.org/wiki/Immediately-invoked_function_expression

[更新]

そんなに(ブロックを使用することができます限り、あなたはlet代わりのvar)を使用するよう:については

{ 

    // Put your code here... 

} 

ブロックに関する詳細情報:http://exploringjs.com/es6/ch_core-features.html#sec_from-iifes-to-blocks

関連する問題