javascript 精粹第四篇(数组)
下面代码要用到之前博客中的代码,在执行的时候请将其中的代码引入,否则报错。
/******************************************************************************* * 数组 *******************************************************************************/console.log('************************************************************************长度');//每个数组都有一个length属性。并且没有上界,如果你用大于或等于当前length的数字做为下标累存储一个元素,//那么length值会被增大以容纳新元素,不会发生数组下标越界错误。var myArray = [];console.log(myArray.length);myArray = true;console.log(myArray.length);//你可以直接设置length的值。设置更大的length不会给数组分配更多的空间。//而把length设小将导致所有下标大于等于新length的属性被删除:var numbers = ['zero','one','two','three','four'];console.log('设置length长度之前numbers为:',numbers);numbers.length = 3;console.log('设置length长度之后numbers为:',numbers);console.log('************************************************************************删除');//由于数组也是对象,所以delete运算符可以用来从数组中移除元素,但移除后会留下一个空洞。//delete numbers;//var str = '';//for(var i = 0;i<numbers.length;i++){//str += numbers+' ';//};//console.log(str);//可以这个splice方法。//numbers.splice(start, deletecount);//start 表示从哪个下标开始删除,deletecount表示删除几个console.log('************************************************************************数组和对象容易混淆的地方');//js对于数组和对象的区别是混乱的,typeof运算符判断数组的类型是‘object’,这没有任何意义。//我们想要判断数组还是对象只能自己定义一个函数来弥补这个缺陷://var is_array = function(value){//return value && typeof value === 'object' && value.constructor === Array;//};//遗憾的是,它在识别从窗口(window)或帧(frame)里构造的数组时会失败,有一个更好的办法去判断一个对象是否为数组:var is_array = function(value){return Object.prototype.toString.apply(value) === '';};var arr_test = ;var obj_test = {};console.log('数组:',is_array(arr_test));console.log('对象:',is_array(obj_test));//console.log(arr_test.length);//数组也是对象,所以可以给数组增加属性,但增加的属性不会影响数组的length的值。//arr_test.total = 8;//console.log(arr_test.length);
未完...见javascript 精粹第五篇(方法)
页:
[1]