作家
登录

JavaScript 数组循环引起的思考

作者: 来源:www.28hudong.com 2013-03-30 01:59:21 阅读 我要评论

看代码,不说话: 复制代码 代码如下: var i=arr.length; while(i--) { //写点啥? } 上面是Google array.js 程序中建议改进的代码。思考为什么i-- 到了 i为0时while循环结束了?下面的代码与它等价: 复制代码 代码如下: var i=arr.length; for(;i--;) { //i--写在两个分号的中间,奇怪吗?不奇怪吗? } 震撼?没感觉? 呃。平时我们写在两个分号中间的是什么?这个i--按“常理”应该是在第二个分号之后啊。那我们看看C语言的代码: 复制代码 代码如下: int main() { int i = 5; while(i--) { printf("%d ", i); } while(1); return 0; } 运行的结果也是与JavaScript惊人的一致! 好吧。我不知道这是为什么?只知道数值0转换成布尔值为false: var i= !!0; 而别的数值转换成布尔值为true。上面的示例程序代码是将数值到布尔值的显式转换。 0隐式转换为false的情况用下面的JS程序测一下: 复制代码 代码如下: var i=0; if(i) { alert('if'); } else{ alert('else'); } alert('不管怎么if和怎么else程序都要走这儿'); if这个示例代码写得一点都不“实战”?那好吧,下面是一位土豆网前端开发高手的代码示例片段: 复制代码 代码如下: var obj = {status:0, msg:'xxxx'}; var data = obj.status || 'xxxx'; 这个总够“隐蔽”的了! 再强调一次:数值0的隐式转换成布尔值为false的条件是在if()中、while()中、for(;;)两个分号的中间等布尔判定的条件表达式。

  推荐阅读

  JavaScript 井字棋人工智能实现代码

[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行] >>>详细阅读


本文标题:JavaScript 数组循环引起的思考

地址:http://www.17bianji.com/kaifa2/JS/27340.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)