6/20/2013
5:31:00 PM 0

JavaScript 變數宣告(使用 var 與不使用 var 的區別)

JavaScript 變數使用 var 來宣告, 如果不使用 var, 則屬於 global object
a = 1; //global

function init() {
    b = 2; //global
    var c = 3; //local
}

function test1() {
    init();
 
    console.log(a); 
    console.log(b); 
    console.log(c); 
}

test1();
output
--------------------------------------------
1
2
exception : ReferenceError: c is not defined

變數宣告後在作用範圍內都有效
function test2() {
    console.log(a);
    var a = 1;
    console.log(a);
}

test2();
output
--------------------------------------------
undefined
1

注意 :
第一次 alert 時並未發生 exception, 而是輸出 undefined, 因 a 的作用範圍在 function test2 裡都有效果, a 尚未出始化, 所以輸出 undefined, 這行為稱之為提昇(Hoisting)

我們可以使用 delete 來刪除物件上的特性, 當不使用 var 宣告的變數, 就屬於 global object 中的一個特性, 相當於我們使用 delete 來刪除變數
var a = 1;
b = 2;
console.log(a);
console.log(b);
console.log(delete a);
console.log(delete b);
console.log(a);
console.log(b)
output
--------------------------------------------
1
2
false (false 表示無法刪除)
true (true 表示特性刪除成功)
1
ReferenceError: b is not defined

JavaScript 有幾個內建的 Data Types, 都可使用 var 來宣告
  1. Primary Data Types
    • String
    • Number
    • Boolean
  2. Composite Data Types
    • Object
      • Function
      • Array
      • Date
      • RegExp
    • Array
  3. Special Data Types
    • Null
    • Undefined
example :
var a;//a is undefined
var b = "test";//b is String
var c = 1;//c is a Number
var d = new Array();//d is Array

0 comments:

Post a Comment