JavaScript“如果” - 为什么它不会失败?

时间:2013-12-02 06:29:37

标签: javascript node.js mocha

我正在nodejs应用程序应用程序中实现mocha测试,我又犯了一个错误。

而不是写it('should ...' , function(done){}); I wrote if('should ...

if ('should implment rest style "destroy" method', function(done){
        request(app)
            .del('/restLike/41')
            .expect(200, '<h1>Rest Like Destroy: 41</h1>')
            .end(done);
    });

愚蠢的错误,如果不是它。但为什么它不会失败,为什么节点v8会编译它?

1 个答案:

答案 0 :(得分:8)

这是有效的JavaScript!

它是一个if语句,其条件是一个带逗号运算符的表达式,其主体是空语句(;)。

定义了逗号运算符here。这里逗号运算符的左侧操作数是一个字符串,右侧操作数是一个函数表达式。逗号运算符表达式(函数表达式)的结果恰好是真实的,空体被执行但什么也没做。

它可能看起来很奇怪,但它解析 - 并执行 - 就好了。