栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

JavaScript循环:for…in与for

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JavaScript循环:for…in与for

不要
for..in
用于数组迭代。

重要的是要了解,

[]
用于访问索引的Javascript数组的方括号语法()实际上是从
Object
… 继承的。

obj.prop === obj['prop']  // true

for..in
结构不能像
for..each/in
其他语言(php,python等)中所看到的那样更传统。

Javascript

for..in
旨在迭代对象的属性。产生每个属性的密钥。结合使用此
Object
的方括号语法,您可以轻松访问所需的值。

var obj = {    foo: "bar",    fizz: "buzz",    moo: "muck"};for ( var prop in obj ) {    console.log(prop);      // foo / fizz / moo    console.log(obj[prop]); // bar / buzz / muck}

并且由于数组只是具有 顺序数字属性名称(索引)的对象,因此其

for..in
工作方式类似,因此产生数字索引的方式与生成上面的属性名称相同。

for..in
结构的一个重要特征是,它将继续在原型链中寻找可枚举的属性。它还将迭代 继承的可枚举属性
。您有责任验证当前属性是否直接存在于本地对象上,而不是它所附加的原型是否存在于本地对象上
hasOwnProperty()

for ( var prop in obj ) {    if ( obj.hasOwnProperty(prop) ) {        // prop is actually obj's property (not inherited)    }}

for..in
在Array类型上使用结构的问题在于,无法保证生成属性的顺序…通常来说,这在处理数组时至关重要。

另一个问题是它通常比标准

for
实现慢。

底线

使用a

for...in
来迭代数组就像使用螺丝刀的the子来钉钉子…为什么不只用锤子(
for
)?



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/420731.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号