1. typeof instanceof
typeof 操纵符, typeof 变量或对象名或函数名或null
. 返回的值: string number boolean undefined function object
instanceof操纵符, 变量(对象名) instanceof 对象范例
. 返回的值: true
或 false
. 假如是该范例则返回 true
, 假如不是该范例, 则返回 false
.
2. Undefined
已声明但还没有初始化的变量的值默以为 undefined
.
还没有声明的变量只能举行一种操纵, 就是用 typeof
操纵符检察范例, 虽然会返回 undefined
, 然则该变量并没有值, 也就是值并非 undefined
.
undefined
派生于 null
, 所以关于相称性测试: alert(undefined == null)
, 返回 true
.
3. Null
null
是一个空对象指针.
undefined
和 null
的区分在于: null
是一个空对象指针, 而 undefined
是已声明但还没有初始化的变量.
4. 基础范例和援用范例
4.1 复制变量
基础范例:
var num1 = 5;
var num2 = num1;
num2 的值转变了, 不会影响到 num1 的值.
援用范例:
var o1 = new Object();
var o2 = o1;
o2 的值转变了, o1 的值也随着转变了.
4.2 通报参数
基础范例:
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);
形参的值转变了, 实参的值也随着转变了.
5. Array
5.1 定义要领:
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
.
5.2
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
.
总结: 当索引超越数组局限的时刻, 只要给该索引位置设置值以后, 数组的长度才会转变.
6. Date
var now = new Date()
取得当前时候.
7. Function
Function 是对象. 函数名是指针, 指向该函数对象.
由于函数名是指针, 所以没有重载, 由于指针只会指向一个函数对象.
函数提拔: 解析器会先读取函数声明, 使其在任何代码执行前可用.
函数能够做参数, 也能够做返回值.
arguments: 保存着一切传入函数的参数. 相似数组.
函数的两个属性: length prototype.