zoukankan      html  css  js  c++  java
  • JavaScript 逗号运算符

       思考  

    关于逗号选择器并不是很重要的一个知识点,但是我在写这篇博客查阅资料的时候发现一个很奇怪的问题。

    在《JavaScript高级程序设计》这本书中说:逗号选择器多用于声明多个变量,除此之外还可以用于赋值。

    在 MDN中并不认为 var 语句中的逗号属于逗号操作符,而将其看作是 var 语句中的特殊符号。

    姑且认为var中的逗号可以理解为逗号分隔,不是逗号运算符。                         

    使用逗号运算符可以在一条语句中执行多个操作。

    在《JavaScript高级程序设计》这本书中认为逗号操作符,多用于声明多个变量,例如:

    var a = 1 , b = 2 , c=3;

    逗号操作符还可以用来赋值,操作符会返回表达式的最后一项,例如:

    var aa=(5,4,3,2,1,0)

    MDN

    逗号操作符 对它的每个操作数求值(从左到右),并返回最后一个操作数的值

    语法:

    表达式1,表达式2,表达式3……

    表达式运算符和操作数(或是变量)的组合就是表达式,

      使用逗号运算符是为了把几个表达式放在一起。整个逗号表达式的值是系列中最后一个表达式的值。

      从本质上讲,逗号的作用是将一系列运算按照顺序执行。最右边的那个表达式的值将会作为整个逗号表达式的值,其他表达式的值将会被丢弃。

    当想要在放置一个表达式的位置包含多个表达式时,可以使用逗号操作符。这个操作符最常用的一种情况是:for 循环中提供多个参数。

    实例:

    下面的代码使用逗号操作符第一次递增/递减两个变量。

    需要注意的是,var 语句中的逗号 不是 逗号运算符,因为它不是存在于一个表达式中的。

    尽管从实际效果来看,var语句中的逗号和逗号运算符的表现相似。但是确切地说,它是 var 语句中的特殊符号,用于把多个变量组合成一个。

    for(var i=0,j=9;i<j;i++,j--){
    //for循环中的第一个逗号是var语句的一部分
    //第2个操作符是逗号操作符
    //将两个表达式 i++ 和 j-- 放在一起
       document.write(i+j);
    }

        处理后返回     

    另一个使用逗号操作符的例子是在返回值之前处理一些操作。

    例如下面的代码,只有最后一个表达式被返回,其他的都是被求值。

    function fun(){
       var i = 0;
       return(i+=1,i);
    }
    fun() //只有最后一个表达式会被返回,其他的都是求值

    最后结果返回的是1,之所以返回的是1,是因为逗号运算符会返回的是最后一个表达式,所谓表达式即为运算符和操作数(或是变量)

    i += 1属于表达式,所以return 的结果是1。

    参考文章:

    https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/Comma_Operator

    《JavaScript高级程序设计》

  • 相关阅读:
    [LeetCode] Search a 2D Matrix
    CCBPM中的消息机制,CCIM服务端安装说明
    程序基石系列之C++多态的前提条件
    汇编中常见的一些错误信息
    浏览器的CSS Hacks
    易学设计模式看书笔记(7)
    [易飞]简易制程日报-月报
    js thiskeyword
    时空-问题集锦(转载)
    Delphi 组件渐进开发浅谈(二)——双简合璧
  • 原文地址:https://www.cnblogs.com/nyw1983/p/12236852.html
Copyright © 2011-2022 走看看