资讯专栏INFORMATION COLUMN

逗号操作符以及(0,function)()

pekonchan / 1186人阅读

摘要:相关链接逗号操作符概述逗号操作符对它的每个操作数求值从左到右,并返回最后一个操作数的值。当你想要在期望一个表达式的位置包含多个表达式时,可以使用逗号操作符。需要注意的是,语句中的逗号不是逗号操作符,因为它不是存在于一个表达式中。

相关链接: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。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/96116.html

相关文章

  • 聊聊ES7与ES8特性

    摘要:我曾写过一篇关于博客个最佳特性,这次我打算聊聊和特性。自从年双十一正式上线,累计处理了亿错误事件,得到了金山软件百姓网等众多知名用户的认可。 译者按: 转眼ES6发布2年了,是时候了解一下ES7与ES8特性了! 原文: ES7 and ES8 Features 译者: Fundebug 为了保证可读性,本文采用意译而非直译,并且对源代码进行了大量修改。另外,本文版权归原作者所有...

    fxp 评论0 收藏0
  • ES8初探

    ES8 在es8中主要有6个特性:主要的有: Shared memory and atomics (共享内存和原子) Async Functions(异步函数) 其他的特性: Object.values/Object.entries (配合Object.keys使用) String padding (字符串填充) Object.getOwnPropertyDescriptors() Trai...

    Shisui 评论0 收藏0
  • Javascript 逗号

    摘要:我们再把做一下修改正常不会报错这里,你会发现,作为分隔符作变量声明时,逗号后面的操作对象得是可以作为变量名的对象,否则会报错而用作操作符时则无需担心这个。 引子 逗号在javascript中很常见,那么这个有什么好说的呢?先来看两个例子吧: var num = (1, 2, 3); console.log(num); // 3 function foo(){ ale...

    Vixb 评论0 收藏0
  • php-cs-fixer - PHP 编码格式化工具

    摘要:是个代码格式化工具,格式化的标准是以及一些的标准。这个工具也和等优秀的库出自同门。如果同时设定了和,前者的优先级更高。同时使用和命令可以显示出需要修改的汇总,但是并不实际修改。你可以设置格式化的选项级别文件以及目录。 php-cs-fixer 是个代码格式化工具,格式化的标准是 PSR-1、PSR-2 以及一些 symfony 的标准。这个工具也和 symfony、twig 等优秀的 ...

    ityouknow 评论0 收藏0
  • javascript 代码规范

    目录 1.为什要遵守代码规范 2.编写代码需遵守的几个原则 3.编码规范(Coding Conventions) 4.命名规范(Naming Conventions) 5.css基础class类 1.为什要遵守代码规范 软件bug的修复是昂贵的,并且随着时间的推移,这些bug的成本也会增加,尤其当这些bug潜伏并慢慢出现在已经发布的软件中时。当你发现bug 的时候就立即修复它是最好的,此时你代...

    cnsworder 评论0 收藏0

发表评论

0条评论

pekonchan

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<