js中var/let/const的區別及使用場景


  繼續學習打卡,武漢加油,逆戰必勝!今日咱們主要探討一下js中var  let  const的區別。

  第一,var是咱們接觸js開始就學習到的一種定義變量的方式,那么這種方式定義的變量有什么特點呢?

    1,var定義的變量會預解析,簡單的說就是如果變量沒有定義就直接使用的話,JavaScript回去解析這個變量,代碼不會報錯,只會輸出undefined

    

 

    2,var定義的變量可以反復去定義,當然后面的會覆蓋前面的

              

    3,var在循環中使用的時候,循環體外依然可以使用

    

 

     4,在循環綁定事件過程中,var定義的變量無法保存,循環會在瞬間執行完

    

  第二,let聲明的變量的特點

     1,let定義的變量不會預解析,必須先聲明再使用,否則會報錯

    

 

     2,let不能定義已經定義過的變量(無論之前是用var定義的還是let或者const定義的)

    

    3,let是塊級作用域,函數內部使用let定義后,對函數外部無影響,簡單說就是在一個{}里面生效

    

 

     4,由於let是塊級作用域,在循環綁定事件過程中let會在這個循環中生效,再次循環時let會重新定義生效

     

 

   第三,const聲明的變量的特點:

    1,const定義的變量不會預解析,必須先聲明再使用,否則會報錯

    

 

     2,const定義的變量不允許修改

      

      但是,在數組里面,const的值是允許被修改的,這是因為const存儲的是地址,值的內容可以變化

      

 

   下面做個總結,也就是大家需要思考的問題:ES6 提出了兩個新的聲明變量的命令:letconst,聲明變量的方式這么多,我們究竟怎么選擇更好呢?給大家建議使用的優先級:const   >  let   >   var 

   首先const聲明常量的好處,一是閱讀代碼的人立刻會意識到不應該修改這個值,二是防止了無意間修改變量值所導致的錯誤,另外其實js編譯器也對const進行了優化,可以提高代碼的執行效率;

   另外let聲明的變量沒有預編譯和變量升級的問題,先聲明再使用其實更為規范,而let本身是一個塊級作用域,很多時候我們在寫代碼的時候都希望變量在某個代碼塊內生效,也更為方便。

  最后說一點就是使用的場景說明:let一般應用於基本數據類型;const 一般應用於引用數據類型,也就是函數對象等。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM