数组是引用类型
创建数组:
- Array构造函数创建:
var arr = new Array();
var arr = new Array(3);
var arr = new Array("red", "blue", "green");
var arr = Array(3);
var arr = Array("red", "blue", "green");
- 字面量创建:
var arr = ["red", "blue", "green"]; // 创建一个包含3 个字符串的数组
var arr = []; // 创建一个空数组
var values = [1,2,]; // 创建数组长度因浏览器而异不推荐使用
var options = [,,,,,]; //创建数组长度因浏览器而异不推荐使用
这是分割线
数组长度与数组最后一个元素索引数值上差 1 ,这是由于数组索引是从0开始。
(index+1)=arr.length;
利用这一特性可以向数组扩充 arr[arr.length]=”new item”;
其中涉及到的暗藏知识就是当arr[] 方括号内的数字超出数组长度会发生什么。如果原本数组长度只有5,我们使用arr[8]="第9个"
,进行赋值操作后。数组长度会变成多少呢?9还是6;
可以看到数组长度变为了9;也就是说arr[5],arr[6],arr[7]
在同时也被创建了,尽管里面为空。
既然我们打开了控制台,那么我们来在控制台里看看这个数组
控制台输入刚才创建的数组,因为创建时没有给每个元素赋值,所以只有索引为8的最后一个赋值过,值为9,以及长度属性。
等等!!! 下面还有东西!!!!点开它
不要头疼 不要怕 ,仔细看 他们是什么
没错,看到了indexOf,join,lastIndexOf,reduce,pop,push,map,reverse……
嗯哼,这不就是教程里数组的那些方法么……吓(* * *)一跳
这些方法大家有的见过有的没见过,有的用过有的没用过,但是总之,眼熟,不吓人。不过今天可不是说这些方法,我说不好,比不上教程,就不献丑。
我们要看的是另一个东西,让人头皮发麻的东西:
点开一个常用的方法:
嗯哼,等等!!!!我们发现了什么:
数组点开有这个
上面点开有这个
join方法点开有这个
这个_ _ proto _ _是啥玩意呢?
跟原型有关,头皮又是一麻!!!
隐式原型就是它
万物皆对象,对象都有它。
就跟血缘关系一样多少年前全地球都是亲戚
对原型,原型链看书看不下去的朋友不妨点开控制台自个点点看,找到他们的祖宗和亲戚。
顺带放上自己发现的学习原型和闭包的深度好文
深入理解javascript原型和闭包–王福朋