javascript语言精粹之javascript数组

发布时间:2020-03-01编辑:脚本学堂
本文介绍了javascript语言精粹中有关javascript数组的用法,有需要的朋友参考下。

以下代码要用到之前博客中的代码,在执行时请将其中的代码引入,否则报错。

代码:
 

复制代码 代码示例:

/************
 * 数组
 **************/ 
console.log('*****************长度'); 
//每个数组都有一个length属性。并且没有上界,如果你用大于或等于当前length的数字做为下标累存储一个元素, 
//那么length值会被增大以容纳新元素,不会发生数组下标越界错误。 
var myArray = []; 
console.log(myArray.length); 
myArray[10000] = true; 
console.log(myArray.length); 
//你可以直接设置length的值。设置更大的length不会给数组分配更多的空间。 
//而把length设小将导致所有下标大于等于新length的属性被删除: 
var numbers = ['zero','one','two','three','four']; 
console.log('设置length长度之前numbers[4]为:',numbers[4]); 
numbers.length = 3; 
console.log('设置length长度之后numbers[4]为:',numbers[4]); 
console.log('*****************删除'); 
//由于数组也是对象,所以delete运算符可以用来从数组中移除元素,但移除后会留下一个空洞。 
//  delete numbers[1]; 
//  var str = ''; 
//  for(var i = 0;i<numbers.length;i++){ 
//      str += numbers[i]+' '; 
//  }; 
//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) === '[object Array]'; 
}; 
var arr_test = [1,3,4]; 
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);