相关链接:https://developer.mozilla.org...

逗号操作符

概述:逗号操作符对它的每个操作数求值(从左到右),并返回最后一个操作数的值。当你想要在期望一个表达式的位置包含多个表达式时,可以使用逗号操作符。这个操作符最常用的一种情况是:for 循环中提供多个参数。需要注意的是,var 语句中的逗号不是逗号操作符,因为它不是存在于一个表达式中。

案例:

function testFunc () {var a = 0;return (a += 1, a); // 等价于return ++x;
}console.log((1, 2)); // console 2
console.log((a = b = 3, c = 4)); // console 4

逗号操作符的用处

先看一个案例:

var obj = {myFunc: function () {console.log(this === window);console.log(this === obj);}
}
obj.myFunc();   // false  true
(0,obj.myFunc)(); // true

输出的结果为 false-true ture。
在函数foo中,this指向的是a,因为foo是a的方法。所以this===window返回false就能理解了。
但是调用(0,obj.myFunc)(),表达式(0,a.foo)将评估它的每个操作数(从左到右),并返回最后一个操作数的值。换句话说,(0,a.foo)等于:

function(){
console.log(this === window);//且这个函数不再附加到任何东西,它this是全局对象window,所以输出的是true。

逗号操作符以及(0,function)()相关推荐

  1. object的部分属性和方法 + 逗号操作符 + label语句 + with + switch + 参数 + typeof和instanceof检测类型 -- 大一下第十五周

    目录 object的一部分属性和方法 逗号操作符 label语句 with语句 switch语句 参数(原始值和引用值的区别) 检测类型 typeof instanceof 小记 valueOf() ...

  2. C++中逗号操作符重载的分析

    1,关注逗号操作符重载后带来的变化: 2,逗号操作符: 1,逗号操作符(,)可以构成都好表达式:exp1, exp2, exp3, ..., expN 1,逗号表达式用于将多个表达式连接为一个表达式: ...

  3. C++中逗号操作符的重载

    文章目录 1 C++中逗号操作符的重载 1.1 逗号操作符的原生语义 1.2 重载逗号操作符 1 C++中逗号操作符的重载 1.1 逗号操作符的原生语义 逗号操作符(,)可以构成逗号表达式: 逗号表达 ...

  4. 【C++深度剖析教程18】逗号操作符的分析

    今天来学习C++中的逗号操作符.那么什么是逗号操作符呢? *逗号操作符(,)可以构成逗号表达式 逗号表达式用于将多个子表达式连接为一个表达式 逗号表达式的值为最后一个子表达式的值 逗号表达式的前N-1 ...

  5. c++ 操作符大全-算术操作符、关系操作符、逻辑操作符、位操作符、自增自减操作符、赋值操作符、条件操作符、逗号操作符、操作符优先级

    文章目录 操作符 1.算术操作符 2.关系操作符 3.逻辑操作符 4.位操作符 5.自增自减操作符 6.赋值操作符 7.条件操作符 8.逗号操作符 9.操作符优先级 操作符 计算机程序可以看作一串运算 ...

  6. 逗号操作符,Foreach用法

    唯一用到逗号操作符的就是for循环语句,使用逗号操作符可以在for循环内定义多个相同类型的变量. for(i=1,j=2;i<5;i++,j=i*2) Foreach 一种新的更加简洁的for循 ...

  7. JavaScript中的逗号操作符(基础使用和拓展用法)

    一.逗号操作符的基础用法 逗号操作符可以用来在一条语句中执行多个操作,如下所示: 在一条语句中同时声明多个变量是逗号操作符最常用的场景.不过,也可以使用逗号操作符来辅助 赋值.在赋值时使用逗号操作符分 ...

  8. c语言中逗号是什么字符,C语言中的逗号操作符

    在C语言中,","的用法有两种:一种是做分隔符,另一种是作运算符.在变量声明语句.函数调用中,逗号是做分隔符用的,例如: int a,b,c; scanf("%f%f%f ...

  9. C语言中的逗号操作符

    在C语言中,","的用法有两种:一种是做分隔符,另一种是作运算符.在变量声明语句.函数调用中,逗号是做分隔符用的,例如: int a,b,c; scanf("%f%f%f ...

最新文章

  1. AMBA、AHB、APB、AXI总线介绍和对比
  2. JQuery学习系列(九)AJAX
  3. 转帖不会乱码的,powershell网络蜘蛛
  4. 【题解】跳房子-C++
  5. python特性有什么_举例介绍Python中的25个隐藏特性
  6. 揭秘Mindscape WPF Elements 5新特性
  7. firefox flash插件
  8. ISO/IEC 5055:软件代码质量的标尺
  9. php deployer 从入门到精通
  10. 点云 3D 目标跟踪 - AB3DMOT(IROS 2020, ECCVW 2020)
  11. 嵌入式系统的功能性指标及非功能性指标
  12. 学习笔记:使用endnotesX9插入参考文献
  13. css自动均匀分布,如何在CSS中均匀分布?
  14. mysql 主从同步master主数据库无法写入
  15. STM32F4 SPI NSS硬件模式配置及使用
  16. 英语学习网站php,英语学习网站
  17. 2020年软考信息安全工程师考试大纲
  18. 电脑数据删除了还能恢复吗?为你推荐三种超实用的电脑数据恢复方法
  19. FM1722/02NL+STM32硬件SPI调试笔记
  20. TCP和UDPsocket中SO_SNDBUF和SO_RCVBUF

热门文章

  1. IDEA中安装MyBatis Log Plugin插件完整显示执行的mybatis的sql语句
  2. linux中mbr最大多少分区,Linux与磁盘分区介绍(MBR,GPT)
  3. 懂你的里程银行,大数据为川航提升用户时代的流量变现力
  4. 神策数据完成B轮融资1100万美元,DCM领投、红杉跟投
  5. 新手入门 如何快速找到Python进阶路线?
  6. 人脸识别可以分辨同性恋?论科技研发和伦理道德之间的矛盾
  7. Uncaught SecurityError: Failed to execute 'replaceState' on 'History': A history state object with
  8. ionic.css界面组件:表单-复选按钮
  9. java抽象类和接口详解
  10. change to port 80 instead of 8069