ES6中var,let,const的區別

Alvin_Will發表於2019-11-02

區別1:作用域不同

var (function scope)

function scope:指的是var定義的變數的作用於實在一個function中,如果外側沒有function,則為全域性

  if(1==1){
       var count = 10
   }
   console.log(count)

在這裡插入圖片描述
在函式中

 var f1=function(){
   if(1==1){
         var count = 10
     }
 }
 f1()
 console.log(count)

在這裡插入圖片描述

let和const 塊作用域

塊作用域值得是變數的作用域只能是自身定義外側最近的一對{}內

  if(1==1){
     let count = 10
     const num=10
  }
  console.log(count)
  console.log(num)

在這裡插入圖片描述

是否夠可以重複定義

var定義的變數可以重複定義,let和const不可以

var count = 10 
var count = 20
console.log(count)
let num = 10
let num = 20
console.log(num)

在這裡插入圖片描述

let和const的區別

let的值可以改變,而const不可以直接改變變數。但是可以改變const變數的屬性

const person = {
  name: 'tom',
  age: 10
}
console.log(person)
person.age = 10
console.log(person)
const num = 10
num = 20
console.log(num)

在這裡插入圖片描述

注意

在實際開發中建議根據自己的需求和使用場景選擇合適的變數定義方式。
如果變數只是在程式碼塊中使用建議使用let,適當的減少var的使用

相關文章