1.类型判断:
typeof:
typeof null; // object
- null的判定有误差: typeof null // 'objext';
- 对引用类型以及子类型,例如函数(可调用对象)、数组(有序索引对象)等进行判定,除了函数(//'function')都会得到object;
instanceof:
- 原理: 测试构造函数的prototype是否出现在检测对象的原型链上;
arr instanceof Array; // true
arr instanceof Object; // true
- 缺陷: 由于arr数组相当于new Array()出的一个实例,所以
arr._proto_ === Array.prototype;
Array.prototype._proto_ === Object.prototype;
Object.prototype.toString()
Object.prototype.toString.call({}) //'[object Object]'
Object.prototype.toString.call([]) //'[object Array]'
- 本质: Object.prototype.toString()方法得到对象的内部属性[[Class]];
Array.isArray()
- 判断传递参数是否为数组(不支持IE6~8)
isNaN()判断是否为NaN
2.数组、字符串、对象常用函数掌握
2.1数组部分
splice函数(改变原始数组)
- 向数组指定位置添加元素的功能;
Array.splice(begin,deleteCount,addItem1,addItem2...)
var b = arr.splice(1,2);
// a: [1,4,5];
// b: [2,3];
var c = arr.splice(1,2,777,888)
// a: [1,2,777,888,4,5]
// b: [2,3]
sclice函数(不改变原数组,创建新数组)
- sclice()方法将数组中一部分元素浅复制存入新的数组对象,并返回这个数组;
- 语法
arr.sclice([start[,end]]);