typeof 操做符, typeof 變量或對象名或函數名或null
. 返回的值: string number boolean undefined function objectjavascript
instanceof操做符, 變量(對象名) instanceof 對象類型
. 返回的值: true
或 false
. 若是是該類型則返回 true
, 若是不是該類型, 則返回 false
.java
已聲明但還沒有初始化的變量的值默認爲 undefined
.數組
還沒有聲明的變量只能進行一種操做, 就是用 typeof
操做符查看類型, 雖然會返回 undefined
, 可是該變量並無值, 也就是值並非 undefined
.瀏覽器
undefined
派生於 null
, 因此對於相等性測試: alert(undefined == null)
, 返回 true
.函數
null
是一個空對象指針.測試
undefined
和 null
的區別在於: null
是一個空對象指針, 而 undefined
是已聲明但還沒有初始化的變量.prototype
var num1 = 5; var num2 = num1;
num2 的值改變了, 不會影響到 num1 的值.指針
var o1 = new Object(); var o2 = o1;
o2 的值改變了, o1 的值也隨着改變了.code
function add(num) { num += 10; return num; } var count = 20; var result = add(count); alert(count); //20 alert(result); //30
形參的值改變了, 不會影響實參的值.對象
function setName(obj) { obj.name = "john"; } var o1 = new Object(); setName(o1); alert(o1.name);
形參的值改變了, 實參的值也跟着改變了.
var arr = new Array(5);
var arr = Array(5);
var arr = new Array(1, 2, 3, 4, 5);
var arr = Array(1, 2, 3, 4, 5);
var arr = [1, 2, 3, 4, 5];
如上所示幾種定義數組的方法. 使用構造函數時, 能夠省略 new
.
var arr = [1, 2, 3, 4, 5]; alert(arr[34]); // undefined
如上所示, alert(arr[34]);
會在瀏覽器中彈出提示框顯示 undefined
. 可是此時 arr[34]
並無值(沒有值的變量都返回undefined), 也就是它的值並非 undefined
. 因此數組的長度依然是 5.
var arr = [1, 2, 3, 4, 5]; arr[34] = undefined; alert(arr[34]); // undefined
如上所示, 給 arr[34]
賦值了, 此時數組的長度會變爲 35. 而且 arr[5~33]之間全部的值都變爲 undefined
.
var now = new Date()
得到當前時間.
Function 是對象. 函數名是指針, 指向該函數對象.
由於函數名是指針, 因此沒有重載, 由於指針只會指向一個函數對象.
函數提高: 解析器會先讀取函數聲明, 使其在任何代碼執行前可用.
函數能夠作參數, 也能夠作返回值.
arguments: 保存着全部傳入函數的參數. 相似數組.
函數的兩個屬性: length prototype.