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 來宣告
- Primary Data Types
- String
- Number
- Boolean
- Composite Data Types
- Object
- Function
- Array
- Date
- RegExp
- Array
- Object
- Special Data Types
- Null
- Undefined
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