2017-10-18 31 views
0

考慮這一點 - 你說我去安慰寫道:如何聯合國宣佈通過JavaScript控制檯添加的所有非函數變量(而不刷新)

let x = 'y'; 

然後我又寫了一封信,並得到:

let x = 'y'; 

我會得到:

SyntaxError: redeclaration of let x

當然,我不打算這樣做,它只是描述我是如何得到埃羅河

有時候我複製可變重聲明幾次全碼測試目的,這些代碼包含與變量的代碼已經宣佈(雖然我修改了代碼的其他部分在文本編輯器複製之前)。爲了克服這個問題,我應該刷新瀏覽器。

我可以在控制檯中寫什麼,不再有這種「重新聲明」錯誤?

我想這裏面並沒有幫助:

localStorage.clear(); 

換句話說,如何在聯合國聲明變量(這不是函數)後,我在JS控制檯申報呢?


我問這個問題的原因是舒適性---我更喜歡在大多數情況下不聲明所有變量而不提醒。

這可能是enuormosly舒服時測試CSS注射在這種情況下,(這樣你沒有得到「的myCSS再次聲明):

// JS CODE TO UN-DECLARE ALL VARIABLES IN EACH NEW PASTE. 

// CODE WITH SAME VARIABLES AND CHANGES: 
let myCss =` 
    .myclass1 {opacity: 1} 
    .myclass2 {display: block} 
`; 
style = document.createElement("style"); 
style.type = "text/css"; 
style.styleSheet ? style.styleSheet.cssText = myCss : style.appendChild(document.createTextNode(myCss)); 
head = document.head || document.getElementsByTagName("head")[0]; 
head.appendChild(style); 
+0

這個控制檯是用於調試應用程序,無論您在控制檯類型將影響同一個會話。您可以** 1)**創建一個不可見的框架並在該框架中聲明您的變量** 2)**或使用IIFE並在其中聲明變量以便全局名稱空間不受污染 – gurvinder372

+0

當您引用控制檯時,你的意思是什麼瀏覽器或devtools? –

回答

0

我建議使用IIFE的:

(function() { 
    let x = 'y'; 
    console.log(x); 
})(); 

他們不創建變量的全局命名空間下。因此,你可以多次運行IIFE而無需刷新頁面。

相關問題