有var和沒有var還有這個不同

我們創建一個變量,估計大家都會創建

var abc = 123;

同時,大家也知道一件事,就是不寫var關鍵字也可以創建。在《javascript高級程序設計》中有這麼一段話:640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

在很多教程和說法中,將沒有var 的這個名稱稱之爲“全局變量”。當時我確實存在疑惑“全局”,如果我在全局直接寫一個var abc = 10;難道這個abc不是全局變量嗎?

之後在網上看到這樣一個說法:

函數作用域內 加var定義的變量是局部變量,不加var定義的就成了全局變量。

如果按照函數作用域的說法,好像全局就說的通了些。但我始終糾結這個“全局變量”的稱呼。


昨天晚上聽廣播,說到了這個沒有加var的方式。

它創建的是window下的一個屬性,而且是可以被delete的,而var聲明的變量只能被垃圾回收機制回收,不能被delete,這就是它和var聲明變量的區別。


這樣一聽,感覺很有道理,於是馬上去試了delete。

= ;
;
.();

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

接着試一下不加var

= ;
.();
;
.(+);

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

以前一些細節都是很不注意的,看來還是要多學習~~~是吧遊遊


轉載自公衆號《前端客

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章