前端程式設計師面試題:setState是同步還是非同步

語言: CN / TW / HK

前端程式設計師面試題:setState是同步還是非同步

我一直說是非同步。因為我是用他的時候,就是非同步的。

然而,面試官給我扣分,說setState這個介面可以同步也可以非同步。文件裡寫了。

我看了,面試官說的沒錯。

但我確實當他非同步用,我沒當他同步用過。沒有因此產生過bug,需要的話我會傳入一個非同步回撥函式。

但是面試官問,我答得不對,不夠好,就扣分,就影響了我的技術,就每個月給我少發幾百塊錢。

所以如果不背面試題,一個月少幾百塊錢,一年少了幾千塊。而我只需要背一下,一年多幾千塊,那我為啥不背呢?

實際專案裡,我使用過程中,我就把他當成非同步的用,不會產生bug。

說到底,這個介面的文件,算下來這一頁也有六百字。背下來也難。

其實也能理解,我也理解了。

說白了就是因為,如果做成同步,可能在事件中,一次觸發很多次這個變數的變更,然後觸發很多次演算法比較,觸發很多次渲染,這樣效能可能不好,就把變更放在了一個等待處理的一個地方,這個地方,可以叫別的啥名字,如果名字沒說對,可能面試又要扣分,就是放在了這個地方,然後如果又有更新就更新他,直到某個條件滿足,才會開始真正的去改掉他的值,去觸發比較演算法,去更新。

我這樣說,說的其實沒錯,但跟面試官背的,還是不一樣。

面試的時候能不能說對這些名詞解釋很重要,少說對一個名詞解釋,就少了幾千塊錢一個月。少說對幾個名詞解釋,就少了幾萬塊一年,少說幾個名詞解釋,比如居中有20種寫法,你只說3中,那就少了幾萬塊一年。