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.