正常的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引擎内部隐式的将数字转成了字符串。
分享到:
相关推荐
JavaScript是世界上最流行的编程语言之一,尤其在Web开发领域中占据着核心地位。它不仅可以用于创建交互式的网页,还可以用于移动应用开发、服务器端编程(如Node.js)等。这篇文章总结了45个实用的JavaScript技巧、...
开源电子书《JavaScript奇技淫巧》,『奇技淫巧』一词出自古籍《书·泰誓下》,指新奇的技艺和作品。此词意与本书内容十分契合,因此书名借用该词。
JavaScript是世界上最受欢迎的编程语言之一,广泛应用于Web开发、移动应用和服务器端开发。学习和掌握JavaScript的一些小技巧,能够帮助开发者写出更高效、更健壮的代码。以下是一些实用的JavaScript奇技淫巧: 1. ...
RocketMQ 奇技淫巧之 ServiceLoader 源码解读 抓下来打包成了HTML文件, 方便离线观看
《算法心得-高效算法的奥秘(原书第2版)》是一本深入探讨算法精髓的书籍,...书中的"位运算的奇技淫巧"部分,无疑是将这种技术运用到极致的探索,对于有志于提升算法水平的开发者来说,是一份不可多得的参考资料。
标题中提到的“来自小密圈里的那些奇技淫巧”可能是指在特定的技术圈子中分享的一些特殊技巧,用于突破安全限制和进行有效的攻击测试。以下将详细解释文档中提及的各个技巧: 1. EVAL长度限制突破技巧: 在PHP中,`...
Python,作为一门广受欢迎的编程语言,在...总之,Python的这些“奇技淫巧”展示了这门语言在实际编程中灵活多变的应用能力,对于学习和使用Python的开发者而言,了解这些技巧能够极大地提高开发效率和程序的用户体验。
vue有哪些奇技淫巧
检测这种攻击的方法之一是观察DNS服务器的异常查询行为,如: - `dig . NS @你要日的dns` 防御DNS放大攻击的关键在于限制未经授权的区域传输和加强DNS服务器的安全配置。 4. **DNS注入、命令执行与隧道** 在某些...
在协同开发中,`git rebase`是一个非常有用的工具,它可以将你的分支上的提交移动到最新的主分支之上,使得提交历史更简洁。然而,这应该在没有共享分支的情况下进行,因为rebase会改变提交的SHA哈希值,可能引发...
Python 语言奇技淫巧总结 Python 语言作为一种高效、灵活的编程语言,具有许多奇技淫巧,可以帮助开发者提高编程效率和代码质量。在本文中,我们将探讨 Python 语言中的四大奇技淫巧:循环代码优化、异常处理,以及...
通过这些"奇技淫巧",我们可以提高测试效率,确保产品质量,并在JavaScript混合移动开发中取得更好的成果。文件"UiAuto-master"可能包含了实现这些技巧的代码示例和具体实施方案,值得进一步研究和学习。
JavaScript是一种动态类型的编程语言,它的灵活性使得开发者可以采用多种方式创建和使用函数。在JavaScript中,函数有两种主要的声明方式:函数声明(Function Declaration)和函数表达式(Function Expression)。...
在这个“Go-Git的奇技淫巧”中,我们将探讨一些高级和实用的Git技巧,以及如何使用Go来进一步操作Git。 1. **分支管理**:Git的分支机制允许开发者在同一项目上并行工作。`git branch`命令用于创建、查看和切换分支...
标题“CSS中边框使用负边距值的奇技淫巧”暗示了负边距在CSS中的独特应用,这些应用可能并不常见,但能够解决特定的布局挑战。描述提到,通过负边距可以进行布局调整和实现元素重叠,这些都是设计师和开发者可以利用...
### bash奇技淫巧 #### 简介 在日常的Linux使用过程中,熟练掌握Bash的一些技巧可以极大地提升工作效率。本文将分享一系列实用的Bash小贴士,旨在帮助那些经常与Linux命令行打交道的人们更好地利用Bash的强大功能...
Git是一个 “分布式版本管理工具”,简单的理解版本管理工具:大家在写东西的时候都用过 “回撤” 这个 功能,但是回撤只能回撤几步,假如想要找回我三天之前的修改,光用 “回撤” 是找不回来的。...