逗号操作符以及(0,function)()
相关链接: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)()相关推荐
- object的部分属性和方法 + 逗号操作符 + label语句 + with + switch + 参数 + typeof和instanceof检测类型 -- 大一下第十五周
目录 object的一部分属性和方法 逗号操作符 label语句 with语句 switch语句 参数(原始值和引用值的区别) 检测类型 typeof instanceof 小记 valueOf() ...
- C++中逗号操作符重载的分析
1,关注逗号操作符重载后带来的变化: 2,逗号操作符: 1,逗号操作符(,)可以构成都好表达式:exp1, exp2, exp3, ..., expN 1,逗号表达式用于将多个表达式连接为一个表达式: ...
- C++中逗号操作符的重载
文章目录 1 C++中逗号操作符的重载 1.1 逗号操作符的原生语义 1.2 重载逗号操作符 1 C++中逗号操作符的重载 1.1 逗号操作符的原生语义 逗号操作符(,)可以构成逗号表达式: 逗号表达 ...
- 【C++深度剖析教程18】逗号操作符的分析
今天来学习C++中的逗号操作符.那么什么是逗号操作符呢? *逗号操作符(,)可以构成逗号表达式 逗号表达式用于将多个子表达式连接为一个表达式 逗号表达式的值为最后一个子表达式的值 逗号表达式的前N-1 ...
- c++ 操作符大全-算术操作符、关系操作符、逻辑操作符、位操作符、自增自减操作符、赋值操作符、条件操作符、逗号操作符、操作符优先级
文章目录 操作符 1.算术操作符 2.关系操作符 3.逻辑操作符 4.位操作符 5.自增自减操作符 6.赋值操作符 7.条件操作符 8.逗号操作符 9.操作符优先级 操作符 计算机程序可以看作一串运算 ...
- 逗号操作符,Foreach用法
唯一用到逗号操作符的就是for循环语句,使用逗号操作符可以在for循环内定义多个相同类型的变量. for(i=1,j=2;i<5;i++,j=i*2) Foreach 一种新的更加简洁的for循 ...
- JavaScript中的逗号操作符(基础使用和拓展用法)
一.逗号操作符的基础用法 逗号操作符可以用来在一条语句中执行多个操作,如下所示: 在一条语句中同时声明多个变量是逗号操作符最常用的场景.不过,也可以使用逗号操作符来辅助 赋值.在赋值时使用逗号操作符分 ...
- c语言中逗号是什么字符,C语言中的逗号操作符
在C语言中,","的用法有两种:一种是做分隔符,另一种是作运算符.在变量声明语句.函数调用中,逗号是做分隔符用的,例如: int a,b,c; scanf("%f%f%f ...
- C语言中的逗号操作符
在C语言中,","的用法有两种:一种是做分隔符,另一种是作运算符.在变量声明语句.函数调用中,逗号是做分隔符用的,例如: int a,b,c; scanf("%f%f%f ...
最新文章
- AMBA、AHB、APB、AXI总线介绍和对比
- JQuery学习系列(九)AJAX
- 转帖不会乱码的,powershell网络蜘蛛
- 【题解】跳房子-C++
- python特性有什么_举例介绍Python中的25个隐藏特性
- 揭秘Mindscape WPF Elements 5新特性
- firefox flash插件
- ISO/IEC 5055:软件代码质量的标尺
- php deployer 从入门到精通
- 点云 3D 目标跟踪 - AB3DMOT(IROS 2020, ECCVW 2020)
- 嵌入式系统的功能性指标及非功能性指标
- 学习笔记:使用endnotesX9插入参考文献
- css自动均匀分布,如何在CSS中均匀分布?
- mysql 主从同步master主数据库无法写入
- STM32F4 SPI NSS硬件模式配置及使用
- 英语学习网站php,英语学习网站
- 2020年软考信息安全工程师考试大纲
- 电脑数据删除了还能恢复吗?为你推荐三种超实用的电脑数据恢复方法
- FM1722/02NL+STM32硬件SPI调试笔记
- TCP和UDPsocket中SO_SNDBUF和SO_RCVBUF
热门文章
- IDEA中安装MyBatis Log Plugin插件完整显示执行的mybatis的sql语句
- linux中mbr最大多少分区,Linux与磁盘分区介绍(MBR,GPT)
- 懂你的里程银行,大数据为川航提升用户时代的流量变现力
- 神策数据完成B轮融资1100万美元,DCM领投、红杉跟投
- 新手入门 如何快速找到Python进阶路线?
- 人脸识别可以分辨同性恋?论科技研发和伦理道德之间的矛盾
- Uncaught SecurityError: Failed to execute 'replaceState' on 'History': A history state object with
- ionic.css界面组件:表单-复选按钮
- java抽象类和接口详解
- change to port 80 instead of 8069