這篇文章主要介紹了javascript中var指的是什么,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、成都微信小程序、集團企業(yè)網(wǎng)站建設(shè)等服務(wù)項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了潁上免費建站歡迎大家使用!
var是javascript中內(nèi)置的一個關(guān)鍵字,用于聲明變量,并可選地將其初始化為一個值;語法格式“var varname [=value];”,參數(shù)value可以是任何合法的表達式,默認(rèn)值為“undefined”。
本教程操作環(huán)境:windows7系統(tǒng)、javascript1.8.5版、Dell G3電腦。
聲明(創(chuàng)建) JavaScript 變量
在 JavaScript 中創(chuàng)建變量被稱為“聲明”變量。
您可以通過 var
關(guān)鍵詞來聲明 JavaScript 變量;var語句聲明一個變量,并可選地將其初始化為一個值:
var varname1 [= value1] [, varname2 [= value2] ... [, varnameN [= valueN]]];
varname:變量名。變量名可以定義為任何合法標(biāo)識符。
value:變量的初始化值。該值可以是任何合法的表達式。默認(rèn)值為 undefined。
說明:
變量聲明,無論發(fā)生在何處,都在執(zhí)行任何代碼之前進行處理。用 var 聲明的變量的作用域是它當(dāng)前的執(zhí)行上下文,它可以是嵌套的函數(shù),或者對于聲明在任何函數(shù)外的變量來說是全局。如果你重新聲明一個 JavaScript 變量,它將不會丟失其值。
當(dāng)賦值給未聲明的變量, 則執(zhí)行賦值后, 該變量會被隱式地創(chuàng)建為全局變量(它將成為全局對象的屬性)。
示例:
1、聲明并初始化兩個變量:
var a = 0, b = 0;
給兩個變量賦值成字符串值:
var a = "A"; var b = a; // 等效于: var a, b = a = "A";
留意其中的順序:
var x = y, y = 'A'; console.log(x + y); // undefinedA
在這里,x 和 y 在代碼執(zhí)行前就已經(jīng)創(chuàng)建了,而賦值操作發(fā)生在創(chuàng)建之后。當(dāng)"x = y"執(zhí)行時,y 已經(jīng)存在,所以不拋出ReferenceError,并且它的值是'undefined'。所以 x 被賦予 undefined 值。然后,y 被賦予'A'。于是,在執(zhí)行完第一行之后,x === undefined && y === 'A'
才出現(xiàn)了這樣的結(jié)果。
聲明和未聲明變量之間的差異是:
1. 聲明變量的作用域限制在其聲明位置的上下文中,而非聲明變量總是全局的。
function x() { y = 1; // 在嚴(yán)格模式(strict mode)下會拋出 ReferenceError 異常 var z = 2; } x(); console.log(y); // 打印 "1" console.log(z); // 拋出 ReferenceError: z 未在 x 外部聲明
2. 聲明變量在任何代碼執(zhí)行前創(chuàng)建,而非聲明變量只有在執(zhí)行賦值操作的時候才會被創(chuàng)建。
console.log(a); // 拋出ReferenceError。 console.log('still going...'); // 打印"still going..."。 Copy to Clipboard var a; console.log(a); // 打印"undefined"或""(不同瀏覽器實現(xiàn)不同)。 console.log('still going...'); // 打印"still going..."。
3. 聲明變量是它所在上下文環(huán)境的不可配置屬性,非聲明變量是可配置的(如非聲明變量可以被刪除)。
var a = 1; b = 2; delete this.a; // 在嚴(yán)格模式(strict mode)下拋出TypeError,其他情況下執(zhí)行失敗并無任何提示。 delete this.b; console.log(a, b); // 拋出ReferenceError。 // 'b'屬性已經(jīng)被刪除。
由于這三個差異,未能聲明變量將很可能導(dǎo)致意想不到的結(jié)果。因此,建議始終聲明變量,無論它們是在函數(shù)還是全局作用域內(nèi)。 而且,在 ECMAScript 5 嚴(yán)格模式下,分配給未聲明的變量會引發(fā)錯誤。
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“javascript中var指的是什么”這篇文章對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識等著你來學(xué)習(xí)!