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

JavaScript奇淫技巧之遍历数组

阅读更多

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


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

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


这个技巧关键是这句

a = ary[i++];

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

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


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

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

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

view source print ?
1 for ( var j=0;j<ary.length;j++) {
2     console.log(ary.j); //undefined
3 }


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


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

输出如下:
0:string
1:string
2:string
3:string

鲜为人知的是用中括号[]存取时,JS引擎内部隐式的将数字转成了字符串。 而作为[]存取时属性可以不遵循JS标识符规则(纯数字不能作为变量命名)。如


1 var obj = {};
2 obj.11 = 11; // 非法
3 obj[ '11' ] = 11; // 合法
2
7
分享到:
评论

相关推荐

    记录日常工作中遇到的问题,前端学习笔记,奇淫技巧、面试真题等,长期更新.zip

    这份"记录日常工作中遇到的问题,前端学习笔记,奇淫技巧、面试真题等,长期更新.zip"压缩包文件,显然是一个宝贵的资源库,涵盖了前端开发者在实际工作和面试过程中可能遇到的关键知识点。 一、面试技巧 面试不仅...

    JavaScript小技巧全集 JavaScript教程 JavaScript源代码集

    JavaScript,作为全球最广泛使用的脚本语言之一,是构建网页动态功能和交互效果的基础。这个“JavaScript小技巧全集”提供了丰富的教程和源代码,旨在帮助开发者深入理解和掌握JavaScript的各种实用技巧。 首先,...

    Javascript小技巧之生成html元素.docx

    7. **JavaScript编程的10个有用小技巧**和**12个特别有用的JavaScript小技巧【推举】**:这两篇文章分别分享了10个和12个实用的JavaScript编程技巧,是进阶学习的好资源。 总的来说,掌握生成HTML元素的技巧对...

    js技巧 javaScript编码技巧

    以上技巧和知识点在200个js技巧.docx文档中可能有更详尽的解释和实例,建议深入学习,结合实践以提升JavaScript编程技能。同时,不断关注JavaScript的最新发展,如ES规范的更新,以及社区的最佳实践,将有助于你成为...

    JavaScript使用技巧精萃

    JavaScript使用技巧精萃 JavaScript使用技巧精萃 JavaScript使用技巧精萃

    Javascript设计技巧集

    Javascript设计技巧集

    JavaScript操作技巧.rar

    这份名为“JavaScript操作技巧”的教程,旨在帮助用户深入了解并熟练掌握JavaScript的核心功能和实用技巧。 首先,文档“JavaScript操作技巧.doc”可能包含了以下内容:基础语法、变量与数据类型、控制流程(如条件...

    javascript非常实用的技巧

    在开发应用中,绝对实用的javascript技巧,一点都不花哨

    javascript技巧(javascript调用C#方法)个人学习笔记

    javascript技巧(javascript调用C#方法) 个人笔记

    javascript技巧精心收集

    "javascript技巧精心收集"这个主题包含了一系列关于JavaScript编程的实用技巧和资源,旨在帮助开发者提升技能和效率。以下是一些从提供的文件名中提炼出的关键知识点: 1. **jsp技巧.txt**:这可能涉及到JavaServer...

    Javascript 技巧大全Javascript 技巧大全

    Javascript 技巧大全Javascript 技巧大全Javascript 技巧大全Javascript 技巧大全Javascript 技巧大全Javascript 技巧大全

    基于一线大厂高级java面试的JavaScript实现技巧汇总

    该项目是针对一线大厂高级Java面试的JavaScript实现技巧汇总,内含219个文件,包括131个Markdown文档、64个PNG图片、8个JPG图片、3个PNG图片、3个SVG图片、2个JavaScript文件、2个draw.io文件、1个YML文件、1个...

    JavaScript Array对象详解-javascript技巧.pdf

    JavaScript Array对象详解_javascript技巧

    230个JavaScript使用技巧

    230个JavaScript开放技巧,使用后会有你想不到的效果

    前端JavaScript面试技巧全套课程.txt

    前端JavaScript面试技巧全套课程

    《JavaScript 语言参考》中文版与使用技巧

    JavaScript,作为全球最广泛使用的编程语言之一,是创建交互式网页和网络应用的关键工具。《JavaScript 语言参考》中文版是一本深入理解JS语法和功能的重要资源,它为开发者提供了全面且详细的API文档,帮助他们查找...

    JavaScript精彩300例技巧集

    《JavaScript精彩300例技巧集》是一份深入实践、极具价值的学习资源,它通过丰富的实例和详尽的解释,帮助开发者掌握JavaScript的核心技巧。这个资料包中的每一个例子都是一次学习和提升的机会,旨在让读者能够从...

    JavaScript文档

    这本书是JavaScript编程领域的一部经典之作,深入浅出地讲解了JavaScript的核心概念和技术。它涵盖了变量、数据类型、运算符、流程控制语句、函数、对象、类、模块等方面的知识,还详细介绍了错误处理、调试技巧和...

    JavaScript精彩网页设计300例技巧集

    JavaScript精彩网页设计300例技巧集是一本深入探讨JavaScript在网页设计中应用的资源集合。这本书或课程可能包含了从基础到高级的各种示例和技巧,旨在帮助开发者提升其JavaScript技能,进而创建出更具交互性和动态...

    深入理解JavaScript系列

    本书是一本全面、深入介绍JavaScript语言的学习...第4部分介绍技巧、工具和类库,帮助读者更好地运用JavaScript进行编程。 本书内容由浅入深,非常适合想要快速学习JavaScript编程或者深入钻研JavaScript的读者参考。

Global site tag (gtag.js) - Google Analytics