引用类型
定义数组的方式:
1.数组字面量 []
2.构造方法 new Array()
所以数组上面的方法全部来源于Array的prototype
稀松数组:数值的每一位上面不一定都有值,[1,2,,,5],但是仍然算作数组长度
var arr = new Array(10);表示长度为10的空数组,但是当只放一位时不能放浮点数.
ECMAScript 是js创作者定义的一些方法 es3.0 es5.0 es6.0
DOM 就是 使用js操作HTML元素
BOM 就是 使用js操作浏览器
后两者是浏览器厂商来补充的,所以兼容性都是出自于浏览器上
es3.0里面数组的一些方法:
改变原数组方法:push,pop,shift,unshift,sort,reverse,splice
不改变原数组的方法:concat,join --> split,toString,slice
push重写试试:
Array.prototype.push = function(){
for(var i = 0 ; i<arguments.length ; i++){
this.[this.length] = arguments[i];
}
return this.length;
}
splice(从第几位开始 , 截取多少的长度 , 在切口处添加新的数据)
splice = function(pos){
pos += pos > 0 ? 0 : this.length
}
sort
1.必须写两形参
2.看返回值
1)当返回值为负数时,那么前面的数放在前面
2)为正数,前面的放后面
3)0 , 不改变
arr.sort(function(a,b){
// a - b > 0 ? 1 : -1;
return a - b; //升序
//return b - a; //降序
})
给一个有序的数组乱序:
arr.sort(function(a,b){
return Math.random() - 0.5;
})