几个知识点

1. typeof instanceof

typeof 操做符, typeof 变量或对象名或函数名或null. 返回的值: string number boolean undefined function objectjavascript

instanceof操做符, 变量(对象名) instanceof 对象类型. 返回的值: truefalse. 若是是该类型则返回 true, 若是不是该类型, 则返回 false.java

2. Undefined

已声明但还没有初始化的变量的值默认为 undefined.数组

还没有声明的变量只能进行一种操做, 就是用 typeof 操做符查看类型, 虽然会返回 undefined, 可是该变量并无值, 也就是值并非 undefined.浏览器

undefined 派生于 null, 因此对于相等性测试: alert(undefined == null), 返回 true.函数

3. Null

null 是一个空对象指针.测试

undefinednull 的区别在于: null 是一个空对象指针, 而 undefined 是已声明但还没有初始化的变量.prototype

4. 基本类型和引用类型

4.1 复制变量

基本类型:
var num1 = 5;
var num2 = num1;

num2 的值改变了, 不会影响到 num1 的值.指针

引用类型:
var o1 = new Object();
var o2 = o1;

o2 的值改变了, o1 的值也随着改变了.code

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 定义方法:

  1. var arr = new Array(5);

  2. var arr = Array(5);

  3. var arr = new Array(1, 2, 3, 4, 5);

  4. var arr = Array(1, 2, 3, 4, 5);

  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.

相关文章
相关标签/搜索