原文地址:http://www.cnblogs.com/hbzyin/p/7310716.html
数组Array是Javascript语言中非常重要的两种引用类型数据之一,另外一种为对象Object。Array的数据模型可分为两种进行存储:堆栈结构、队列结构。
昨天,确切说是前天了,去和大学同学见面,请了半天假,顺便去参加了一个面试,结果还不知道;先说说面试中的一些Javascript相关的基本知识。虽然平时工作中也经常用到各种数组相关的方法, 但理解不够深刻,总是容易遗忘,今天趁机再整理一下。
1.数组的基本属性:①length、②prototype、③constructor
- Array.length : 设置、返回数组中元素的数目;
- Array.prototype : 设置、返回数组中原型的属性/方法;
- Array.constructor: 返回次对象的数组函数的引用。
var arr1=new Array();
arr1.length=3; //// 1.1. 设置数组的长度
console.log(arr1); //[undefined × 3]
var arr2=[1,2,4]; //// 1.2.返回数组的长度
console.log(arr2.length);//3
Array.prototype.attrName="new attribute"; //// 2.1 设置数组原型的属性
console.log(Array.attrName);//new attribute;
Array.prototype.newFn=function(){ //// 2.2设置数组原型的方法
return "This is a new fn of Array.prptotype.";
}
console.log(Array.newFn()); // This is a new fn of Array.prptotype.
Array.constructor.newFunction(); ////返回创建次对象的数组函数;
2. 数组堆栈FILO模型下方法:①push ②pop
这两种方法都会导致原数组产生变化,返回值为完成操作之后的数据;
var arr3=['a','b','c'];
arr3.push('d'); //堆栈中从**堆栈顶部**添加一个元素--改变原数组
arr3.pop(1) // 从堆栈顶部删除数组的最后一个元素--改变原数组
3.数组队列模型FIFO下的方法:①push、②shift、③unshift
var arr4=["d","e","f"];
arr4.push("g"); //// 3.1 在队列末尾添加一个元素--改变原数组
console.log(arr4);//["d","e","f","g"]
arr4.shift(1); //// 3.2 在队列头部删除一个元素--改变原数组
console.log(arr4);//["e","f","g"]
arr4.unshift("dd"); //// 3.3 在队列头部添加一个元素--改变原数组
console.log(arr4);//["dd","e","f","g"]