-
相同点:都可以继承,数组是对象,对象不一定是数组,都可以当作对象添加删除属性。 不同点:数组自动更新length,按索引访问数组常常比访问一般对象属性明显迅速。数组对象继承Array.prototype上的大量数组操作方法。 var str="hello world";ctr.charAt(0);//"h" str[1];//e Array.prototype.join.call(str,"_");//"h_e_l_l_o__w_o_r_l_d" Array查看全部
-
bind方法对this的影响查看全部
-
原型链之间的继承查看全部
-
forEach:遍历数组元素的方法,arr.forEach(function(x,index,a){});//x具体的元素值,index对应的下标,a数组本身 map:数组映射,var arr=[1,2,3];arr.map(function(x){return x+10;});//[11,12,13] arr;//[1,2,3]不会修改原数组 filter:数组过滤,原数组不被修改,arr.filter(function(x,index){}) every:表示每一个元素都要符合一定的条件 var arr=[1,2,3];arr.every(function(x){return x<10;});//true some:只要任意一个元素符合条件就可以了,every相当于逻辑与,some相当于逻辑或 reduce:数组两个元素两两操作var arr=[1,2,3];arr.reduce(function(x,y){return x+y;},0);//6,这里的0是和1最开始进行相加的,每次结果作为新的x,下一个元素作为y,原数组未被修改 reduceRight:是从右到左开始遍历的,其他的还是跟reduce一样的,都可以将数组聚合成一个结果 indexOf:arr.indexOf(a);//表示元素值为a的所在数组的下标位置,arr.indexOf(a,i)从下标为i的元素开始查找元素值为a的下标位置 lastIndexOf:与indexOf差不多,只不过是从右到左开始查找的,返回元素所在的下标位置 isArray:判断是否为数组,必须用Array构造器对象调用 其他的判断是否数组的方法: [] instanceof Array;//true ({}).toString.apply([])==='[object Array]';//true [].constructor === Array;//true查看全部
-
最前面加!或外层(),强制函数转函数表达式。否则匿名函数JS报错!两种方式完全等同。查看全部
-
函数闭包-封装技术查看全部
-
join:将数组转换为字符串var arr=[1,2,3] arr.join("-");//"1_2_3" new Array(4).join("a");//"aaa"; reverse:将顺序逆序 var arr=[1,2,3];arr.reverse();//[3,2,1];arr;//[3,2,1]; sort;排序,原数组被修改,默认按照字母排序,对于数字也是先转换为了字符串,可以自己在sort传入一个比较函数 arr.sort(function(a,b){return a-b;} //从小到大(从大到小则是return b-a;)) concat:合并数组,原数组未被改变,如果数组元素作为参数则数组会被拉平arr.concat([10,11],13)//[1,2,3,10,11,13], 如果参数是数组,并且数组的元素还是数组,则数组元素不会被拉平 arr.concat([1,[2,3])//[1,2,3,1,[2,3]]; slice:返回数组的片段,原数组不会被修改 slice(i,j)//i表示开始元素的下标,j表示要获取的最后一个元素的下一个数的下标(左闭右开区间), slice(i)//从i开始到最后所有的元素 slice(i,-1)//i开始元素的下标,-1表示最后一个元素(负数表示从后面数),获取到最后一个元素的前一个元素 splice:数组拼接,数组被修改 var arr=[1,2,3,4,5]; (接收一个参数)arr.splice(2);//return [3,4,5] arr;//[1,2],表示i表示开始元素的下标,从这个元素还是删除到最后一个元素 (接收两个参数)arr.splice(i,j);//i表示开始元素的下标,j表示想删除的元素的个数 arr.splice(1,1,'a','b');//表示从下标为1的元素开始删除,删除元素个数为1,即只删除下标为1的元素,被删除的位置重新添加‘a’,‘b’这两个元素查看全部
-
关注,闭包的好处。查看全部
-
监听点击、AJAX等查看全部
-
闭包: function outer(){ var s = 30; return function(){ return s; } } outer(); //function (){ return s; } 为什么这里调用结果是函数 var p = outer(); p(); //30 赋值再调用就是30呢?查看全部
-
二维数组:数组的元素是数组 稀疏数组:并不含有从0开始的连续索引,一般length属性值比实际元素个数大 var arr1=[undefined];//第一个元素为undefined var arr2=new Array(1);//定义一个长度为1的数组 0 in arr1;//true 0 in arr2;//false arr1.length=100; arr1[99]=123; 99 in arr1;//true 98 in arr1;//false var arr=[,,]; 0 in arr;//false查看全部
-
创建数组:1、用中括号var BAT=["aaa","bbb","ccc"]; 2、用new array():var a=new Array(100);//undefined*100 var b=new Array(true,false,null,1,2,"hi");//等价于[true,false,null,1,2,"hi"] 数组是动态的,无需指定大小,arr.push跟arr[arr.length]都是在数组的后面添加,arr.unshift在数组的头部添加 delete某个arr[i]只会让这个arr[i]这个位置的元素变为undefined,实际长度还是不变的; arr.length -=1;//把最后一个元素删除,arr.pop()也是会删除尾部元素; arr.shift()删除头部元素; 数组迭代:1、一般的for循环;2、for in(会把原型的也打印出来),要用hasOwnProperty去判断下,而且for in是没有按顺序的查看全部
-
六中数据类型: num string boolean null undefined object(Fucntion Array Date内置对象)查看全部
-
这个理解了,那JS就通了... ...查看全部
-
判断浏览器是否IE9以下,自己写一个bing的功能函数!查看全部
举报
0/150
提交
取消