欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

js中的逗号表达式 有大用

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <script type="text/javascript">
  6. /*逗号表达式是由逗号运算符组合而成
  7.        * 逗号表达式的值是最后一个表达式的值*/
  8. var a=2;
  9. var b=0;
  10. var c;
  11. c=(++a,a*=2,b=a*5);
  12. alert(a)//输出6
  13. alert(b)//输出30
  14. alert(c)//输出30
  15. </script>
  16. <title>逗号表达式</title>
  17. </head>
  18. <body>
  19. </body>
  20. </html>


               

来自  https://blog.csdn.net/xuehyunyu/article/details/73555787


JS逗号运算符(,)详解

逗号运算符是二元运算符,它能够先执行运算符左侧的操作数,然后再执行右侧的操作数,最后返回右侧操作数的值。

逗号运算符可以实现连续运算,如多个变量连续赋值。
  1. var a = 1,b = 2,c = 3,d = 4;

等价于:
  1. var a = 1;

  2. var b = 2;

  3. var c = 3;

  4. var d = 4;


与条件运算符、逻辑运算符根据条件来决定是否执行所有或特定操作数不同的是,逗号运算符会执行所有的操作数,但并非返回所有操作数的结果,它只返回最后一个操作数的值。

在下面代码中,变量 a 的值是逗号运算之后,通过第二个操作数 c=2 的执行结果赋值得到的。第一个操作数的执行结果没有返回,但是这个表达式被执行了。
  1. a = (b = 1,c = 2);  //连续执行和赋值

  2. console.log(a);  //返回2

  3. console.log(b);  //返回1

  4. console.log(c);  //返回2

提示

逗号运算符可以作为仅需执行表达式的工具,这些表达式不需要返回值,但必须要运算。在特定环境中,可以在一个表达式中包含多个子表达式,通过逗号运算符让它们全部执行,而不用返回结果。

for 循环结构的小括号内包含 3 个表达式,第一个表达式为初始化值,第二个表达式为检测条件,第三个表达式为递增表达式。使用逗号运算符可以在 3 个表达式中添加多个额外的计算任务,但要确保第二个表达式的最后一个子表达式返回一个可控布尔值,否则会导致死循环。
  1. for(var a = 1,b = 10,c = 100;++ c,a < b;a ++,c --){

  2. console.log(a * c);

  3. }


逗号运算符的优先级是最低的。在下面代码中,赋值运算符优先于逗号运算符,也就是说数值 1 被赋值给变量 b 之后,继续赋值给变量 a,最后才执行逗号运算符。
  1. a = b = 1,c = 2;  //连续执行和赋值

  2. console.log(a);  //返回1

  3. console.log(b);  //返回1

  4. console.log(c);  //返回2

来自  http://c.biancheng.net/view/5478.html



javaScript 逗号表达式

逗号表达式的一般形式是:表达式1,表达式2,表达式3……表达式n 
逗号表达式的求解过程是:先计算表达式1的值,再计算表达式2的值,……一直计算到表达式n的值。最后整个逗号表达式的值是表达式n的值。 
看下面几个例子:

 

x=8*2,x*4 /*整个表达式的值为64,x的值为16*/ 
(x=8*2,x*4),x*2 /*整个表达式的值为128,x的值为16*/ 
x=(z=5,5*2) /*整个表达式为赋值表达式,它的值为10,z的值为5*/ 
x=z=5,5*2 /*整个表达式为逗号表达式,它的值为10,x和z的值都为5*/ 


逗号表达式用的地方不太多,一般情况是在给循环变量赋初值时才用得到。所以程序中并不是所有的逗号都要看成逗号运算符,尤其是在函数调用时,各个参数是用逗号隔开的,这时逗号就不是逗号运算符。 
如:printf(" %d,%d,%d",x,y,z); ########################################################### 运算符使它两边的表达式以从左到右的顺序被执行,并获得右边表达式的值。, 运算符最普通的用途是在 for 循环的递增表达式中使用。例如: 

for (i = 0; i < 10; i++, j++)
{
    k = i + j;
}

 

每次通过循环的末端时, for 语句只允许单个表达式被执行。, 运算符被用来允许多个表达式被当作单个表达式,从而规避该限制。

来自  https://www.cnblogs.com/hellolong/p/4210297.html




普通分类: