`
truth99
  • 浏览: 61372 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

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);


未完...见javascript 精粹第五篇(方法)
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics