首先感谢Dash 我不再用处处乱找文档了javascript
再次感谢日食记 让个人看到了世界的美好java
好的 咱们进入正题chrome
注解 我全部的学习心得都创建在ECMAscript5以后数组
IE9以前的浏览器概不负责浏览器
javascript Array是一个好玩的对象app
如何检测她呢 首先instanceof是个不错的方法函数
if (value instanceof Array) { }
不过根据javascript高级程序设计说 这样作 若是一我的从新构造了Array函数 你完了学习
so 这样ui
if(Arrays.isArray(value)) { }
如今咱们要构造了
this
不过搞那些有啥意思呢
其实我关心这些构造方式时候产生的类型是否同样
var arr1 = []; var arr2 = new Array(); var arr3 = Array(); alert(typeof arr1); alert(typeof arr2); alert(typeof arr3);
好吧 都是object类型
你们都知道数组里有个length属性 那么她靠谱吗
var fruits = []; fruits.push('banana', 'apple', 'peach'); console.log(fruits.length); // 3 fruits[5] = 'mango'; console.log(fruits[5]); // 'mango' console.log(Object.keys(fruits)); // ['0', '1', '2', '5'] console.log(fruits.length); // 6
卧槽 明明只有4个元素 返回的是6
不过通过个人实验 在现代浏览器(ie9之后版本 chrome firefox safair)上
for (var i = 0; i < fruits.length; i++) { console.log(fruits[i]); };
是会填充undefined的
如今我尝试着修改length属性
fruits.length = 2; console.log(Object.keys(fruits)); // ['0', '1'] console.log(fruits.length); // 2
卧槽 我以前的数据呢
查看一下Array.length 竟然是可写的
两个做用
循环数组 相似于foreach
消除不须要的数组 。。。
Array 实现栈 队列
栈 只有一个出入口 先进后出
so 咱们假设如今有一个空数组
var stack = [];
我想要放入 一些元素
var totalnum = stack.push('angel', 'clown', 'mandarin', 'sturgeon'); console.log(stack); // ['angel', 'clown', 'mandarin', 'sturgeon'] console.log(totalnum); // 4
拿出一个元素
var poped = stack.pop(); console.log(poped); // sturgeon
实现一个 队列
队列 先出先进 进出分开
后面进 前面出
var queue = ['angel']; arr.push('clown', 'mandarin', 'surgeon'); // = 4 console.log('queue before: ' + queue); var shifted = queue.shift(); console.log('queue after: ' + queue); console.log('Removed this element: ' + shifted);
前面进 后面出
一样 只是进使用 unshift 出使用pop