JavaScript 数组循环引起的思考

 更新时间:2010年01月01日 00:07:12   作者:  
Google array.js 程序中建议改进的代码。思考为什么i-- 到了 i为0时while循环结束了?
看代码,不说话:
复制代码 代码如下:

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(;;)两个分号的中间等布尔判定的条件表达式。

相关文章

  • 看看“疫苗查询”小程序有温度的代码

    看看“疫苗查询”小程序有温度的代码

    近日,一篇《疫苗之王》刷爆了朋友圈,疫苗的安全问题被推到了风口浪尖,腾讯安全反诈骗实验室团队推出了“腾讯安心计划”小程序,方便用户便捷地查询疫苗安全信息
    2018-07-07
  • JavaScript逆向案例之如何破解登录密码

    JavaScript逆向案例之如何破解登录密码

    这篇文章主要介绍了JavaScript逆向案例之如何破解登录密码,文章通过12306的登陆方法展开用户登录密码的参数破解办法,感兴趣的小伙伴可以参考一下
    2022-06-06
  • 微信小程序实现简单九宫格抽奖

    微信小程序实现简单九宫格抽奖

    这篇文章主要为大家详细介绍了微信小程序实现简单九宫格抽奖,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-06-06
  • JavaScript模板引擎实现原理实例详解

    JavaScript模板引擎实现原理实例详解

    这篇文章主要介绍了JavaScript模板引擎实现原理,结合实例形式详细分析了JavaScript模板引擎原理、定义、使用方法及相关操作注意事项,需要的朋友可以参考下
    2018-12-12
  • JavaScript、jQuery与Ajax的关系

    JavaScript、jQuery与Ajax的关系

    这篇文章主要介绍了 JavaScript、jQuery与Ajax的关系的相关资料,需要的朋友可以参考下
    2016-01-01
  • JS+CSS实现3D切割轮播图

    JS+CSS实现3D切割轮播图

    这篇文章主要为大家详细介绍了JS+CSS实现3D切割轮播图,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-03-03
  • Javascript 不能释放内存.

    Javascript 不能释放内存.

    Javascript 不能释放内存....
    2006-09-09
  • 不安全的常用的js写法

    不安全的常用的js写法

    一种很常见的写法,大家都是这样写的,但如果这样的代码,杀毒软件认为是病毒的吧,就太恶劣的。判断能力也太差了。
    2009-09-09
  • javascript实现简单计算器效果【推荐】

    javascript实现简单计算器效果【推荐】

    下面小编就为大家带来一篇javascript实现简单计算器效果【推荐】。小编觉得挺不错的,现在分享给大家,也给大家做个参考
    2016-04-04
  • JavaScript 一道字符串分解的题目

    JavaScript 一道字符串分解的题目

    要求用js写一个函数,对传入的形如下网址字符串,返回对应的对象。
    2011-08-08

最新评论