美文网首页
JS中的 length, var i = [1,2]; i[le

JS中的 length, var i = [1,2]; i[le

作者: xixi兮兮 | 来源:发表于2017-11-25 16:48 被阅读0次

(写了好久)版权所有: 转载请 说明 出自 xixi兮兮 的简书  http://www.jianshu.com/p/4453346e78ef

今天在看视频的时候,看到JS的数组与对象,以前一直模模糊糊,不清楚,现在趁着下午有时间,好好的弄清楚了

懒得翻墙,现在还是一个英语渣  ,所以,国内  http://www.w3school.com.cn 是这么解释的

首先:JS中的length,我们知道  定义 一个 数组,或者对象  length是常使用的,获得其长度的方法,无论是js,java, php 都是如此

但是在JS中 单独  alert(length);  打印出的就是:0

alert(typeof length); 打印:number

说明  length  在js中没有被任何数组,对象 调用的时候,就是代表一个数字 0

所以接下的问题好解释了

定义一个  数组  var box = ["?",2,3,"?",2,3,"?",2,3,"?",2,3];

alert(box[length]); //打印:?

alert(typeof box[length]); //打印:string

定义一个  数组  var box = [1,2,3,"?",2,3,"?",2,3,"?",2,3];

alert(box[length]); //打印:1

alert(typeof box[length]); //打印:number

打印的都是 数组中 索引是0 的 元素的值,和元素的类型

重点:

length是一个数字 0 ,

var i = [1,2];  i[length]是 i 数组里的 索引为0 的元素

然后是i.length,我们知道 是i 数组中的长度,或者说元素个数。

i["length"] 是数组中,下标(我读书的时候学的java,老师习惯了这么叫)、索引是length的元素(一般数字的下标,或者索引都是数字,但是在js中,数组也是对象类型,在数组中,i["length"]  = "一个字符串", alert(i["length"])  打印出 “一个字符串” ,也是可以的,这时  length 是 它的键,一个字符串” 是它的值,键值对,键值对,就是这样来的,注意:

var box = ["?",2,3];

box["length"] = "数字";

这么写是会报错的,会在控制台打印出  Uncaught RangeError: Invalid array length

Uncaught Range Error: Invalid array length

翻译(百度翻译):捕获的范围错误:无效的数组的长度

有道翻译:未捕获范围错误:无效的数组长度

所以:

1.length 是一个数字 0

2.var i = [1,2];  i[length] 是 i[0]数组中下标为0的元素

3.var i = [1,2];i.length  是 i 数组的长度

4.i["length"] 是 i 数组中 键为length 的元素

回去试试,下面这段代码:

基础:

var box = ["?",2,3];

box[length] = "数字";

box["length"] = "数字";//demo.js:122 Uncaught RangeError: Invalid array length

alert(box);

进阶:(代码要自己试试才看的懂)

var box = [1,2,3];

alert(box[length]); //打印:1

alert(typeof box[length]); //打印:number

// alert(typeof box[num]); // 报错:Uncaught ReferenceError: num is not defined

box[length] = "数字";

alert(box.length);//3

alert(box);

var box = ["?",2,3];

alert(box[length]); //打印:?

alert(typeof box[length]); //打印:string

// alert(typeof box[num]); // 报错:Uncaught ReferenceError: num is not defined

box[length] = "数字";

alert(box.length);//打印:3

alert(box);//打印:数字,2,3

//打印: 3 数字,2,3

alert(box[length]);//可能是把box的索引0的内容打印出来了 box[length] 这个length是数组长度吗?

alert(length); //打印:0

alert(typeof length); //打印:number

var box = ["?",2,3,"?",2,3,"?",2,3,"?",2,3];

alert(box[length]); //打印:?

alert(typeof box[length]); //打印:string

var box = [1,2,3,"?",2,3,"?",2,3,"?",2,3];

alert(box[length]); //打印:1

alert(typeof box[length]); //打印:number

// alert(typeof box[num]); // 报错:Uncaught ReferenceError: num is not defined

box[length] = "数字";

alert(box.length);//打印:3

alert(box);//打印:数字,2,3

//可能是把box的索引0的内容打印出来了 box[length] 这个length是数组长度吗?不是

alert(length); //打印:0 说明 length 没有被 对象. 的时候,就是 数字0

(写了好久)版权所有: 转载请 说明 出自xixi兮兮的简书  http://www.jianshu.com/p/4453346e78ef

相关文章

网友评论

      本文标题:JS中的 length, var i = [1,2]; i[le

      本文链接:https://www.haomeiwen.com/subject/rjpcbxtx.html