首頁  >  文章  >  web前端  >  javascript var是什麼

javascript var是什麼

青灯夜游
青灯夜游原創
2021-06-09 14:08:446578瀏覽

var是javascript中內建的一個關鍵字,用於聲明變量,並可選地將其初始化為一個值;語法格式“var varname [=value];”,參數value可以是任何合法的表達式,預設值為“undefined”。

javascript var是什麼

本教學操作環境:windows7系統、javascript1.8.5版、Dell G3電腦。

宣告(建立) JavaScript 變數

在 JavaScript 中建立變數稱為「宣告」變數。

您可以透過var 關鍵字來宣告JavaScript 變數;var語句宣告一個變數,並選擇性地將其初始化為一個值:

var varname1 [= value1] [, varname2 [= value2] ... [, varnameN [= valueN]]];
  • varname:變數名。變數名可以定義為任何合法標識符。

  • value:變數的初始化值。該值可以是任何合法的表達式。預設值為 undefined。

說明:

變數聲明,無論發生在何處,都在執行任何程式碼之前進行處理。用 var 宣告的變數的作用域是它目前的執行上下文,它可以是巢狀的函數,或對於宣告在任何函數外的變數來說是全域。如果你重新宣告一個 JavaScript 變量,它將不會失去其值。

當賦值給未宣告的變數, 則執行賦值後, 該變數會被隱式地建立為全域變數(它將成為全域物件的屬性)。

範例:

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 在程式碼執行前就已經創建了,而賦值操作發生在創建之後。當"x = y"執行時,y 已經存在,所以不拋出ReferenceError,它的值是'undefined'。所以 x 被賦予 undefined 值。然後,y 被賦予'A'。於是,在執行完第一行之後,x === undefined && y === 'A' 才出現了這樣的結果。

【相關推薦:javascript學習教學

#宣告和不宣告變數之間的差異是:

1. 宣告變數的作用域限制在其宣告位置的上下文中,而非宣告變數總是全域的。

function x() {
  y = 1;   // 在严格模式(strict mode)下会抛出 ReferenceError 异常
  var z = 2;
}

x();

console.log(y); // 打印 "1"
console.log(z); // 抛出 ReferenceError: z 未在 x 外部声明

2. 宣告變數在任何程式碼執行前創建,而非宣告變數只有在執行賦值操作的時候才會被創建。

console.log(a);                // 抛出ReferenceError。
console.log('still going...'); // 打印"still going..."。
Copy to Clipboard
var a;
console.log(a);                // 打印"undefined"或""(不同浏览器实现不同)。
console.log('still going...'); // 打印"still going..."。

3. 宣告變數是它所在情境環境的不可配置屬性,非宣告變數是可設定的(如非宣告變數可以被刪除)。

var a = 1;
b = 2;
delete this.a; // 在严格模式(strict mode)下抛出TypeError,其他情况下执行失败并无任何提示。
delete this.b;
console.log(a, b); // 抛出ReferenceError。
// 'b'属性已经被删除。

由於這三個差異,未能宣告變數將很可能導致意想不到的結果。因此,建議始終聲明變量,無論它們是在函數還是全域作用域內。而且,在 ECMAScript 5 嚴格模式下,指派給未宣告的變數會引發錯誤。

更多程式相關知識,請造訪:程式設計影片! !

以上是javascript var是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn