javascript定義變量時(shí)有var和沒有var的區(qū)別探討
我們先來看一段代碼
function show(){
alert(abc);
}
var abc="defg";
show();
有過C++或Java編程經(jīng)驗(yàn)的人可能會說:“這程序,死定了,變量竟然在引用了該變量的函數(shù)后邊定義,bug會滅掉你的。”放在瀏覽器上運(yùn)行一下,結(jié)果怎樣?完美運(yùn)行!接下來我們就說一下這是咋回事——有var和沒有var定義的變量的區(qū)別。
1、沒有var
簡明的說,定義變量時(shí)省略var是不安全的,不過是合法的。這時(shí)無論該變量是在什么位置定義的,解釋器都會賦予該變量以全局作用域。
2、有var
安全的,合法的。定義的變量的作用域取決于定義的位置。至于作用域具體是什么,請參見本博客中“javascript作用域”一文。
這樣,開頭的那個(gè)問題可以解決了。函數(shù)中的才是對abc的定義,只不過值為undefined,這時(shí)abc有全局作用域,函數(shù)外的只是對abc的值的更新。
- 在Javascript中 聲明時(shí)用"var"與不用"var"的區(qū)別
- javascript定義變量時(shí)加var與不加var的區(qū)別
- JavaScript中var關(guān)鍵字的使用詳解
- js for循環(huán),為什么一定要加var定義i變量
- JavaScript中const、var和let區(qū)別淺析
- 淺析JavaScript中var that=this
- JScript中的''var''定義變量的作用域
- Javascript var變量隱式聲明方法
- 關(guān)于JavaScript中var聲明變量作用域的推斷
- JavaScript ES6中const、let與var的對比詳解
- JavaScript中var的重要性實(shí)例分析
相關(guān)文章
淺談javascript構(gòu)造函數(shù)與實(shí)例化對象
JavaScript 中的構(gòu)造函數(shù)和其它語言中的構(gòu)造函數(shù)是不同的。 通過 new 關(guān)鍵字方式調(diào)用的函數(shù)都被認(rèn)為是構(gòu)造函數(shù)。任何JavaScript 函數(shù)都可以用做構(gòu)造函數(shù),構(gòu)造函數(shù)必須 使用new 運(yùn)算符作為前綴來創(chuàng)建新的實(shí)例。2015-06-06
Javascript基礎(chǔ)教程之定義和調(diào)用函數(shù)
這篇文章主要介紹了Javascript基礎(chǔ)教程之定義和調(diào)用函數(shù)的相關(guān)資料,需要的朋友可以參考下2015-01-01
Javascript入門學(xué)習(xí)第八篇 js dom節(jié)點(diǎn)屬性說明
上2篇文章我們講了 用dom方式 創(chuàng)建節(jié)點(diǎn),復(fù)制節(jié)點(diǎn),插入節(jié)點(diǎn), 刪除節(jié)點(diǎn),替換節(jié)點(diǎn),查找節(jié)點(diǎn),獲取屬性等。。。2008-07-07
javascript中hasOwnProperty() 方法使用指南
這篇文章主要詳細(xì)介紹了javascript中hasOwnProperty() 方法使用指南,非常的全面,推薦給有需要的小伙伴參考下。2015-03-03
js split 的用法和定義 js split分割字符串成數(shù)組的實(shí)例代碼
關(guān)于js split的用法,我們經(jīng)常用來將字符串分割為數(shù)組方便后續(xù)操作,今天寫一段廣告判斷代碼的時(shí)候,竟然忘了split的用法了,特整理下,方便需要的朋友2012-05-05
window.navigate 與 window.location.href 的使用區(qū)別介紹
首先說明的是 window.navigate 與 window.location.href 都是實(shí)現(xiàn)頁面鏈接跳轉(zhuǎn)的,下面將介紹它們的區(qū)別。感興趣的朋友可以參考下2013-09-09

