如您所知,ECMAscript會(huì)嘗試變得聰明,如果您未明確編寫分號(hào),則會(huì)自動(dòng)插入分號(hào)。簡(jiǎn)單的例子function foo() { var bar = 5 return bar}仍將按預(yù)期工作。但是,如果您依靠這一點(diǎn),則有一些警告。如果我們像這樣重寫該函數(shù)function foo() { var bar = 5 return { bar: bar }}該函數(shù)現(xiàn)在將返回,undefined因?yàn)榻忉屍鲗⒃谠搑eturn語句之后插入該分號(hào)(這就是為什么始終將大括號(hào)與一條語句放在同一行的原因)。然而,知道這一切,現(xiàn)在我不知道如何安全的一個(gè)return像下面的語句是,跨瀏覽器和版本function foo() { var a = true, b = true, c = false; return a && b && c;}我只是return statement在生產(chǎn)環(huán)境中寫過類似的文章。僅僅因?yàn)槲抑繣CMAscript的“問題”而對(duì)分號(hào)插入不是那么聰明,我現(xiàn)在想知道,該代碼能否100%有效。在我對(duì)FF / Chrome / IE(最新版本)的首次測(cè)試中,這似乎完全可以,但是真的嗎?如果除了該行中的語句以外,自動(dòng)分號(hào)插入是否會(huì)“喚醒” return?任何人都可以提供有關(guān)實(shí)現(xiàn)的詳細(xì)信息嗎?
自動(dòng)分號(hào)插入和返回語句
開滿天機(jī)
2019-11-20 10:24:26