淺談let和const的區別

let和const的區別javascript

let和const只在聲明的塊極做用域內有效。java

  1. let聲明的變量能夠被修改,值和類型均可以修改
  2. const聲明的變量不可被修改,一旦聲明,必須進行初始化。
    const a;//會報錯,由於a只聲明沒有賦值;
    
    
    
    const b = 123;
    b=456;//會報錯,由於const聲明的變量不能被修改
    

      

    若是聲明的是複合類型的變量:數組或者對象,那麼const指向變量所在的地址,const會保證const聲明的變量的地址不變,可是不會保證地址內的數據不改變
    const person = [];
    person = ['黑人','白人'];//會報錯,由於[]和['黑人','白人']是不同的地址,地址發生了改變。
    
    
    這種狀況不會報錯,由於students指向的地址沒有變化,只是裏面的數據發生了改變
    const  students = [];
    students[0] = '阿明';
    students[1] = '阿利';

    若是想讓定義的數組和對象中的數據或者屬性不被修改,能夠用Object.freeza(obj)進行凍結,這樣給對象添加屬性就不起做用了數組

相關文章
相關標籤/搜索