`
zhouyrt
  • 浏览: 1174747 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JavaScript奇技淫巧之遍历数组

阅读更多

正常的for循环就不提了,直接进入正题。如下:

 

//示例1
for(var i=0,a;a=["jack","tom","lily","andy"][i++];){
	console.log(a);
}
//示例2
var ary = ["jack","tom","lily","andy"];
for(var i=0,a;a=ary[i++];){
	console.log(a);
}

 

从firebug控制台能看到依次输出jack ,tom ,lily ,andy。这里有个疑问,示例1不知是否会每次都产生一个数组对象实例,如果是,数组很大时可能会有性能问题?

 

这个技巧关键是这句

a = ary[i++];

 

js中数组实际上也是一个普通的Object。属于索引数组且并非“连续分配”内存的,因此索引方法并不会带来很高的效率。

 

http://snandy.iteye.com/blog/276054

 

中括号[i++]依然是一个普通对象取属性操作而已,试试看

 

var ary = ["jack","tom","lily","andy"];
for(var a in ary) {
    console.log(a);
}
 

firebug控制台输出0,1,2,3。证明了0,1,2,3的确是数组ary的属性。

 

既然是ary的属性,那么是否可以通过点运算符(.)来存取呢?试试看

 

for(var j=0;j<ary.length;j++) {
   console.log(ary.j);//undefined
}
 

 

为什么示例1,2中用中括号[]存取就可以了呢?因为中括号ary[0],ary[1],ary[2],ary[3]里的0,1,2,3是字符串类型的。如下:

 

for(var atr in ary) {
	console.log(atr + ":" + typeof atr);
}

 输出如下:

0:string
1:string
2:string
3:string

鲜为人知的便是:用中括号[]存取时,js引擎内部隐式的将数字转成了字符串。

 

 

 

 

 

 



分享到:
评论
1 楼 Sartner 2012-01-17  
......
没看懂想表达什么   

相关推荐

    JavaScript奇技淫巧45招 _ 不可能不确定1

    JavaScript是世界上最流行的编程语言之一,尤其在Web开发领域中占据着核心地位。它不仅可以用于创建交互式的网页,还可以用于移动应用开发、服务器端编程(如Node.js)等。这篇文章总结了45个实用的JavaScript技巧、...

    开源电子书《JavaScript奇技淫巧》,本书向您分享一系列新奇、有趣、有技术含量的 JavaScript 编程技术

    开源电子书《JavaScript奇技淫巧》,『奇技淫巧』一词出自古籍《书·泰誓下》,指新奇的技艺和作品。此词意与本书内容十分契合,因此书名借用该词。

    JavaScript奇技淫巧44招【实用】

    JavaScript是世界上最受欢迎的编程语言之一,广泛应用于Web开发、移动应用和服务器端开发。学习和掌握JavaScript的一些小技巧,能够帮助开发者写出更高效、更健壮的代码。以下是一些实用的JavaScript奇技淫巧: 1. ...

    RocketMQ 奇技淫巧之 ServiceLoader 源码解读 - GitChat

    RocketMQ 奇技淫巧之 ServiceLoader 源码解读 抓下来打包成了HTML文件, 方便离线观看

    算法心得-高效算法的奥秘(原书第2版)_带书签_高清_[位运算的奇技淫巧].pdf

    《算法心得-高效算法的奥秘(原书第2版)》是一本深入探讨算法精髓的书籍,...书中的"位运算的奇技淫巧"部分,无疑是将这种技术运用到极致的探索,对于有志于提升算法水平的开发者来说,是一份不可多得的参考资料。

    来自小密圈里的那些奇技淫巧.pdf

    标题中提到的“来自小密圈里的那些奇技淫巧”可能是指在特定的技术圈子中分享的一些特殊技巧,用于突破安全限制和进行有效的攻击测试。以下将详细解释文档中提及的各个技巧: 1. EVAL长度限制突破技巧: 在PHP中,`...

    Python那些事——python的奇技淫巧

    Python,作为一门广受欢迎的编程语言,在...总之,Python的这些“奇技淫巧”展示了这门语言在实际编程中灵活多变的应用能力,对于学习和使用Python的开发者而言,了解这些技巧能够极大地提高开发效率和程序的用户体验。

    vue有哪些奇技淫巧.md

    vue有哪些奇技淫巧

    渗透中关于dns的奇技淫巧.pdf

    检测这种攻击的方法之一是观察DNS服务器的异常查询行为,如: - `dig . NS @你要日的dns` 防御DNS放大攻击的关键在于限制未经授权的区域传输和加强DNS服务器的安全配置。 4. **DNS注入、命令执行与隧道** 在某些...

    Git的奇技淫巧

    在协同开发中,`git rebase`是一个非常有用的工具,它可以将你的分支上的提交移动到最新的主分支之上,使得提交历史更简洁。然而,这应该在没有共享分支的情况下进行,因为rebase会改变提交的SHA哈希值,可能引发...

    Python 语言有什么奇技淫巧吗?.docx

    Python 语言奇技淫巧总结 Python 语言作为一种高效、灵活的编程语言,具有许多奇技淫巧,可以帮助开发者提高编程效率和代码质量。在本文中,我们将探讨 Python 语言中的四大奇技淫巧:循环代码优化、异常处理,以及...

    移动端Ui自动化上的正经奇技淫巧Havefun

    通过这些"奇技淫巧",我们可以提高测试效率,确保产品质量,并在JavaScript混合移动开发中取得更好的成果。文件"UiAuto-master"可能包含了实现这些技巧的代码示例和具体实施方案,值得进一步研究和学习。

    Javascript中的函数声明与函数表达式(奇技淫巧)

    JavaScript是一种动态类型的编程语言,它的灵活性使得开发者可以采用多种方式创建和使用函数。在JavaScript中,函数有两种主要的声明方式:函数声明(Function Declaration)和函数表达式(Function Expression)。...

    Go-Git的奇技淫巧

    在这个“Go-Git的奇技淫巧”中,我们将探讨一些高级和实用的Git技巧,以及如何使用Go来进一步操作Git。 1. **分支管理**:Git的分支机制允许开发者在同一项目上并行工作。`git branch`命令用于创建、查看和切换分支...

    CSS中边框使用负边距值的奇技淫巧

    标题“CSS中边框使用负边距值的奇技淫巧”暗示了负边距在CSS中的独特应用,这些应用可能并不常见,但能够解决特定的布局挑战。描述提到,通过负边距可以进行布局调整和实现元素重叠,这些都是设计师和开发者可以利用...

    bash奇技淫巧

    ### bash奇技淫巧 #### 简介 在日常的Linux使用过程中,熟练掌握Bash的一些技巧可以极大地提升工作效率。本文将分享一系列实用的Bash小贴士,旨在帮助那些经常与Linux命令行打交道的人们更好地利用Bash的强大功能...

Global site tag (gtag.js) - Google Analytics