今天碰到了乙個問題,說當我建立乙個
a = 5;
再建立乙個var a = 10;
然後console.log(a)會輸出多少?
首先我們要知道,在非嚴格模式下不給變數提前宣告var的話,瀏覽器會自動將未宣告的變數補上var,
所以 a = 5 就是 var a = 5;
上面這段**執行起來輸出的值就會是 10 ;
a = 5;
console.log(a);
var a= 10;
這又涉及到了另外乙個知識,首先我們要知道**是從上往下執行的,也就是說在console.log(a)執行時會找到他前面這個** a = 5;所以列印結果為 5。
console.log(a);
var a = 10;
需要注意,此時並不會輸出 10。會輸出undefined。因為**從上往下執行,到了console這一行時沒找到a,瀏覽器會認為你沒有建立變數a,輸出undefined。 js關於變數宣告 var let const 區別
關於定義 宣告 變數 es6之前定義變數是用 var 那麼var有什麼問題嗎,如果但但從變數上來說是沒有問題的,var是variable的縮寫,英文翻譯是變數。var問題 1.汙染全域性 之前定義迴圈的方式 for var i 0 i 10 i alert i 有一天突然運營檔案,這個時候彈出的是 ...
JS變數宣告和函式宣告提公升
很多時候,在直覺上,我們都會認為js 在執行時都是自上而下一行一行執行的,但是實際上,有一種情況會導致這個假設是錯誤的。a 2 var a console.log a 按照傳統眼光,console.log a 輸出的應該是undefined,因為var a在a 2之後。但是,輸出的是2。再看第二段 ...
關於變數的宣告和定義
變數的宣告與定義的區別 變數的宣告有兩種情況 1 一種是需要建立儲存空間的。例如 int a 在宣告的時候就已經建立了儲存空間。2 另一種是不需要建立儲存空間的。例如 extern int a 其中變數a是在別的檔案中定義的。前者是 定義性宣告 defining declaration 或者稱為 定...