javascript 精粹第四篇(数组)

[b][color=blue][size=medium]
下面代码要用到之前博客中的代码,在执行的时候请将其中的代码引入,否则报错。
[/size][/color][/b]

/*******************************************************************************
* 数组
*******************************************************************************/
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);

[b][color=blue][size=medium]
未完...见javascript 精粹第五篇(方法)
[/size][/color][/b]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值