在JavaScript中,做(0,function_name)()与function_name()的重要性是什么?

时间:2017-03-23 03:12:32

标签: javascript syntax babeljs

当我注意到时,我正在Babel repl上玩耍:

import {foo} from 'bar';
foo();

Babel生成:

'use strict';

var _bar = require('bar');
(0, _bar.foo)();

而对于:

function foo() {}
foo();

Babel生成预期的:

"use strict";

function foo() {}
foo();

我的问题是关于第一个Babel输出的最后一行,是否有理由进行(0, _bar.foo)();而不是_bar.foo()?如果_bar.fooundefined

,它是否会处理某种角落情况?

我找到了这些资源。来自MDN逗号运算符docs

  

逗号运算符计算每个操作数(从左到右)并返回最后一个操作数的值。

并从MDN分组运算符docs

  

分组运算符()控制表达式中评估的优先级。

根据我的理解,从这两个陈述中,(0, _bar.foo)应评估为_bar.foo

0 个答案:

没有答案