如何看待React官網中所有示例的變數宣告全部使用const?

時間 2021-05-10 06:38:28

1樓:預見

個人認為從語義來說,const定義的應該是不可變的值(配置檔案、api、工具類),let定義變數(常用作中間量),這是基礎。只要滿足基本需求,都是沒問題的。

2樓:Jack Lei

實際開發中,重置變數的場景很少,使用const 會在修改變數時提示錯誤,這樣可以避免不少潛在問題。

eslint 配置時,特意使用const.

3樓:

乙個小孩問一位胡長發白的老爺爺:老爺爺,你睡覺的時候是把你這花白的長鬍子放在被子外還是放在被子裡?這個問題一時把老爺爺問住了,因為他從來不曾留意自己的鬍子到底是怎麼放的的?

為了孩子的疑問,是夜,老爺爺睡覺的時候就特意留心鬍子,先是放在被子的外面,可是,寒夜有些冷,接著又把鬍子放在被子裡,可捂了一會,又覺得熱,老爺爺這麼一折騰,一晚上沒睡著,竟然完全不知過去是怎麼放的,現在也不知該怎麼放好。

4樓:taotao

Dan Abramov 寫了一篇部落格 On let vs const:

5樓:林大元

我覺得吧,這是js設計的問題,導致理解的問題。es6的時候應該設計成var或者let mut是可變變數,let代表不可變,const就是引用不可變代表常量。

6樓:宇哥

當你用多了函式式,用多了immutable。就會發現使用const已經是個習慣了。

我的習慣也是優先使用const,遇到條件賦值時也會優先用三元式,只有遇到比較複雜的條件賦值才會用let。

7樓:胖虎

js 裡 const 和 let 可變不可變可以理解為引用位址是否可變

es6 新增 let const 的乙個原因是區分原有 var 的變數提公升的效果

這個引用繫結的特性和原型鏈加動態 this 就是是js讓人愛又讓人恨的原因吧(js初學者需要重點關注特性)

8樓:題葉

之前 Twitter 上 const let 的論戰沒有參與過。。個人觀點,常寫 clojurescript,會一點 Nim,會一些簡單的 haskell。

clojurescript 裡定義檔案級別的變數或者說資料用 def,如果是函式體內部,用的 let 做語法糖的繫結。def 是不推薦覆蓋的,有些場景還會警告,let 是可以 shadow 掉的,不是修改原始的那個變數,類似區域性的覆蓋。clojurescript 裡是用 persistent data 來做整個不可變資料的,全域性要有可變資料需要 atom 型別。

Nim 是一定程度上用編譯器實現不可變資料,用 let 宣告的資料不能重複賦值,好像也不讓直接修改內部,var 定義的是按照引用傳值可以修改內部的,整個改那也可以。

haskell 在函式內部常用 let 和 where 定義繫結,當然 haskell 基本上函式式語言不讓隨便修改資料或者變數,只能 shallow。

好.... 我 C 風格的語言我碰得少,TypeScript 算多,現在告訴我說 let 是可改的,const 是不可重新賦值的但是內部還是可以改,要不可變的話自己去 freeze 啊,連 let 定義的也能 freeze...(這寫法是猴子派來的麼...

)一定程度上就讓我覺得有點異樣。導致我目前習慣上還是大量用 let,當然大部分的使用是在 react 的場景當中,狀態用 useState 宣告,然後 js 這邊的變數用 let,如果有在元件外部全域性,我可能會考慮下 const。

就最初寫 react 的時候,js 當中還只有 var,我能選擇的最多是換成 coffee 寫那樣我不用寫 var,其他好像就沒了。現在變來變去讓人感覺有點物是人非的。

9樓:

dan 很直接表示了我不在乎你用const or let, 都可以~On let vs const

"今天寫點什麼呢, 寫幾個demo吧, "

const... const... const...

10樓:否定之否定

個人習慣:如果乙個變數有初始值,就用const宣告,然後發現要修改這個變數了,const再改為let。如果沒有初始值,就賦乙個初始值。

11樓:成楠Peter

如果你用了airbnb的eslint,那你必須把不變的變數都定義成const,否則會報錯。我相信React團隊應該也有類似的校驗。

12樓:賀師俊

就是乙個 coding style 問題。

見:https://www.

13樓:金辰浩

個人覺得這不是如何看待和習慣的問題,這是規範問題。如果沒有重新賦值就應該用const,沒有理由用let,eslint也會幫你轉成const。

youtube上很多老外喜歡寫let,可能是受早期寫var的影響,但在現代前端體系下並不規範

14樓:小蚊子

在變數不會被重新賦值的時候,建議還是設定為const的型別。

若需要重新賦值的變數,則可以使用let的型別。

就目前來說,使用babel編譯後,都會變成var型別,但在開發階段還是很有意義的,如果給乙個const型別的變數重新賦值,就能提前知道編譯出錯了。

15樓:熊傑

你可能有 c 語言背景。 c 語言中說的常量一般用巨集定義, 不是變數無法改變。 直接進行字串替換的。

而 js 中提到的常量, 更多指的是不可變資料型別。 所以乙個"變數", 如果是不會被改變的, 只是作為中間值的, 就應該定義成 const。

如何看待UMIJS官網使用VUE

跨越南牆 好吧,看到這個問題,作為乙個最底層前端人,有點震驚,因為為啥不用react生態圈的umi自身,加上dva 或者說直接ant design pro腳手架搞一下加點頁面就完事兒。 weaponxx 2年前吧螞蟻金服還沒有dumi,而當時vuepress非常的火,其中vuepress當時官方維護...

如何看待阿里雲官網改版

its斯弟文 個人而言,對標國內幾家主流雲廠商的頁面設計,從配色和互動的角度最喜歡阿里雲。尤其是改版後的白橙色設計,更加溫馨親民,直接拉進了技術與企業,技術與人之間的距離。同時,阿里雲的幫助文件以及頁面串聯都做的非常好,非常適合初次接觸雲計算的人群。且目前其他廠商基本還使用藍黑白的科技風。這樣的色調...

如何看待衡中官網被黑?

這個孩子是我學妹的朋友。確實犯了很大的錯誤。但是我希望這個孩子以後能變成乙個把自己的小聰明用到正道上的人。太過狂妄,有時候會吃苦頭。Ps 他的語氣好中二,濃濃的日漫風,像是乙個幼稚自大的小鬼2333正確引導吧,說不定可以成為人才。 腿毛防蚊蟲 一場惡作劇?確實荒唐。作為歷年來的高考巨頭學校,竟然莫名...