avascript變量聲明的方法實例
js中使用一個變量之前應當先聲明。變量使用關鍵字var來聲明。
如果未在var聲明語句中給變量指定初始值,則該變量值爲undefined。
不用在聲明變量時指定變量類型,js變量可以是任意數據類型。
使用var語句重複聲明變量是合法且無害的。如果重複聲明帶有初始化器,則就和簡單的賦值語句沒啥區別。
如果試圖讀取一個沒有聲明的變量,則js會報錯。在ECMAScript5嚴格模式下,給一個沒有聲明的變量賦值也會報錯;然而從歷史上來說,在非嚴格模式下,如果給一個未聲明變量賦值,js實際上會給全局對象創建一個同名屬性,且貌似它工作起來像一個正確聲明的全局變量。這意味着你可以僥倖不聲明全局變量,但這是一個壞習慣會造成很多bug,最好始終使用var來聲明變量。
在函數體內,同名的局部變量會覆蓋全局變量。
儘管全局作用域寫代碼可以不寫var語句,但聲明局部變量時必須使用var語句,參考如下代碼:
scope = "global";function foo(){ scope="local" //fk!我們剛剛修改了全局變量!!!}
在類似C語言的編程語言中,花括號中每一段代碼都有各自的作用域,且變量在聲明它們代碼段之外是不可見的,我們稱之爲塊級作用域(block scope);而js中沒有塊級作用域,而是取而代之的使用了函數作用域(function scope):變量在聲明它們的函數體以及這個函數體嵌套的任意函數體內都是有定義的(無論是內嵌套還是外嵌套?)
js的`函數作用域指在函數內聲明的所有變量在函數體內始終是可見的,這意味着變量在聲明前甚至可以使用了。js的這個特性非正式的稱爲聲明提前(hoisting),即js函數裏聲明的所有變量(但沒有賦值)都被“提前”至函數體的頂部。
var scope = "global";function f(){ (scope); //輸出"undefined"而不是"global" var scope = "local"; //變量在這裏賦初始值,但變量在函數體內任何地方均是有定義的 (scope); //輸出"local"
以上代碼等價於:
function f(){ var scope; (scope); scope = "local"; (scope); }
當聲明一個js全局變量時,實際上定義了全局對象的一個屬性。
當用var聲明一個變量時,創建的這個屬性時不可配置的,即無法用運算符刪除;但當你沒有使用嚴格模式並給一個未聲明的變量賦值的話,js會自動創建一個全局變量,以這種方式創建的變量是全局對象的正常可配置屬性,是可以刪除的:
var x = 1; y = 2;this.z = 3; //同上 x; //返回false,無法刪除變量 y; //返回true,變量被刪除 this.z //同上
希望本文所述對大家的javascript程序設計有所幫助。
-
續貸的聲明集錦15篇
續貸的聲明1本學年在學校中得到了很大的收穫。在學習方面,刻苦學習功課,學習態度端正,成績一直名列前茅;在生活中,尊敬師長,團結同學,積積極參與學校組織的活動,積極向上,遵守校紀校規,聽從老師的安排,配合老師的工作,受到老師與同學們的讚揚;此外,利用空閒時間做兼職,不斷...
-
免責聲明範本[薦]
免責聲明範本1本次活動爲非贏利性質自助遊活動,不是商業活動,也不是旅行社旅遊。參加者必須對自己的安全負責,活動中發生任何意外及損害,發起者和同行者在任何情況下均不承擔任何法律和經濟責任,特此聲明!1、20xx年xx月xx日活動性質屬於自願參加、車輛自備、費用自理...
-
助學貸款續貸聲明
助學貸款續貸聲明1我是XX大學XX學院的一名大二學生現就對在校學習情況和續貸原因做以下說明:在校學習情況:學習方面在學校裏我刻苦學習大一學年中我在認真完成學校規定的學習任證的培訓和考試在生活方面我節約用錢不和同學攀比吃穿學習之餘還盡力去做各種兼職(家...
-
公司聲明書(集錦11篇)
公司聲明書1我單位(名稱)淄博xxxxx有限公司所提交的企業產品標準(名稱、編號)xxxxx(Q/0305ZFF003-20xx符合國家有關法律法規、強制性標準及相關產業政策要求,已經專家審定,並按照規定程序由企業法人代表批准發佈,符合如下要求:(a)(相關法律法規名稱)《產品質量法》、《標...
相關文章
- 評課稿:skim and match the pictures with each paragraph
- i recall with embarrassing clarity the flavor of those particular ashes ?
- 微信服務號無法獲取AppId和AppSecret的方法
- 葡萄牙語的歷史:Revolucionários apossam-se de Porto Alegre
- Snapchat 爲何開始試水類 Path 的 ‘Stories’ 社交功能?
- ADMINISTRATIVE ASSISTANT(Personnel)電子簡歷模板
- 幾種實用的JavaScript鼠標特效
- javascript的基本規範
- 英文求職信AdminstrationExecutive Assistant
- 暑假計劃英語作文:My summer vacation travel plans