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程式設計有所幫助。
-
公司宣告書(精選)
公司宣告書1本人於20xx年xx月xx日與xx房地產經紀有限公司簽訂加盟協議。作為xx房地產經紀有限公司分公司店加盟合作。我店地址是xxx。現本人與xx房地產經紀有限公司協商後解除加盟協議。本人做出宣告和承諾如下:1、在我經營管理活動中無任何合同糾紛、無任何債...
-
關於道歉宣告常用15篇
關於道歉宣告1一書作者為侯,由文史出版社出版,一書侵犯了作者劉、楊著作權,對此侯及文史出版社已停止出版、發行含有涉及侵權內容的'一書等侵權行為,並就該書侵權審查管理等疏忽導致的後果進行了深刻的反省。同時鄭重向的作者劉、楊表示最誠摯的歉意,請劉、楊給予...
-
公司宣告書合集15篇
公司宣告書1××會計師事務所並××註冊會計師:本公司已委託貴事務所對本公司20×1年、20×2年、20×3年的企業年度研究開發費用結構明細表,20×3年度的企業高新技術產品(服務)收入明細表(以下簡稱申報明細表)進行審計,並且出具專項審計報告。為配合貴事務所的審...
-
離職員工宣告15篇
離職員工宣告1本人自願與__飲料廠解除勞動合同關係,已於簽署之日前正式解除、終止。_在現單位的工作期間與原工作單位發生的任何勞動糾紛、經濟糾紛所引起的.一切後果,由本人自行承擔,均與先工作單位無關,該單位不承擔任何法律責任。本人宣告:截止至簽署宣告之日,本...
相關文章
- Snapchat 為何開始試水類 Path 的 ‘Stories’ 社交功能?
- 幾種實用的JavaScript滑鼠特效
- 葡萄牙語的歷史:Revolucionários apossam-se de Porto Alegre
- 暑假計劃英語作文:My summer vacation travel plans
- 英文求職信AdminstrationExecutive Assistant
- ADMINISTRATIVE ASSISTANT(Personnel)電子簡歷模板
- 微信服務號無法獲取AppId和AppSecret的方法
- i recall with embarrassing clarity the flavor of those particular ashes ?
- 評課稿:skim and match the pictures with each paragraph
- javascript的基本規範