回覆列表
  • 1 # 使用者7526796867228

    區別的話,主要有幾個 1:作用域不一樣,var是函式作用域,而let是塊作用域,也就是說,在函式內聲明瞭var,整個函式內都是有效的,比如說在for迴圈內定義了一個var變數,實際上其在for迴圈以外也是可以訪問的,而let由於是塊作用域,所以如果在塊作用域內(比如說for迴圈內)定義的變數,在其外面是不可被訪問的,所以let用在for (let i; i < n; i++)是一種很推薦的寫法 2. let不能在定義之前訪問該變數,但是var是可以得。也就是說,let必須是先定義,再使用,而var先使用後宣告也行,只不過直接使用但是沒有卻沒有定義的時候,其值為undefined,這塊要注意,這一塊很容易出問題,這也是個人認為的let比var更好的地方,至於為啥會有這種區別呢,實際上var有一個變數提升的過程。也就是說,當這個函式的作用域被建立的時候,實際上var定義的變數都會被建立,並且如果此時沒有初始化的話,則預設會初始化一個undefined。 3. let不能被重新定義,但是var是可以的。這個呢,我個人認為,從規範化的角度來說,是更推薦的,比如說,你在前面聲明瞭一個變數,後來寫程式碼,因為忘了之前的程式碼邏輯,又聲明瞭一個同名的變數,如果這倆變數邏輯不一樣,並且後面都要用的話,很容易出問題,且不容易維護。 總之呢,let從規範化的角度來說,要比var要進步了很大一步。所以一般情況下的話,推薦用let,const這些。當然啦,如果相對var,const和let有更深入的瞭解,推薦幾篇小文章,這樣你就會對其相關知識點有更加深入的瞭解了。Javascript基礎之-var Javascript基礎之-var,let和const深入解析(一) Javascript基礎之-var,let和const深入解析(二)

  • 中秋節和大豐收的關聯?
  • 有老伴有兒女的姑姑想讓我去給她侍疾,該怎麼拒絕?