4
當使用箭頭功能並結合短路評估時,我遇到了意外的行爲。箭頭功能和短路評估
正如預期的那樣,在函數下面的代碼的結果被分配給:
let a = false || function(data) { return data }
然而使用箭頭函數時此相同的主要拋出異常:
let a = false || (data) => data //SyntaxError: Unexpected token false
儘管如此,如果您需要將箭頭函數分配給一個變量,然後執行「相同」操作,但將箭頭函數替換爲新變量(a)結果與您預期的一樣,函數被分配給變量(b):
let a = (data) => data
let b = false || a //b = (data) => data
問題
是什麼原因造成的?這是故意的嗎?如果是這樣,爲什麼?
注意
與&&
發生同樣的問題,認爲這使我它有做與一般的短路評價,而不是隻||
和&&
雖然我沒有足夠的見地,以使該要求。
編輯
在()
作品結束語箭頭的功能!
對不起,重複的問題,瘋狂搜索,但顯然不夠瘋狂。原來,這是一個需要工作不只是我的JavaScript知識
我想這是關於編譯器如何翻譯它的東西。如果你添加另一對括號,它會起作用 'let a = false || ((data)=> data)' –
可能是一個關於參數列表應該在哪裏開始的簡單的語法歧義。 – deceze
false || (data)=> data ===(false || data)=> data –