一道面试题关于js中逗号

一、今天遇到一个面试题,自我感觉是会,但是却做错了。人都是这样,自我感觉良好,其实也就预警自己已经忽视一些细节以及一些自我感知。

面试题:

1    var i=0,j=0,k;
2     for(;i<3,j<5;i++,j++){
3         k=i+j;
4     }
5     console.log(k);

求k的值,当时想都没想,直接认为是4。但是结果却是8。这是因为什么?都逗号的缘故。

逗号的作用是连接表达式,如果多个表达式:f1,f2,f3.....fn 的时候作为判断条件的时候,最终这个表达式的值是由第n个表达式决定即最后的表达式的值决定。

这就是解释上面的问题。当j等于5的时候表达式:i<3,j<5返回的是false 所以这时候 i,j的值都是4。

注意:

  1、js中基本数据类型传递的值。

  2、对象类型传递的是地址。

原文地址:https://www.cnblogs.com/evilliu/p/10789329.html