一、let聲明的變量只在命令所在的代碼塊內有效
二、使用let命令聲明的變量在解析的過程當中不會被預解析(也就是不存在變量提高了)
三、使用let命令聲明的變量會存在暫時性死區
四、不一樣於var全局變量再也不是 window的屬性了code
let f=10; function aa() { f=3; //會報錯 出現了暫時性死區 let f=12; return f; } console.log(aa())
使用let這個變量不容許再重複聲明 (var聲明過的變量也不能夠再使用let來聲明瞭)
四、let在for循環中的使用 在循環語句以內是一個父做用域 在循環體中是一個子做用域作用域
for(let i=0;i<10;i++){ let i=10; console.log(i) //10個10 } console.log(i) //訪問出錯 i沒有被定義
const 聲明的常量有以下的特色
一、所聲明的常量只能在命令所在的代碼塊有效
二、聲明的常量不會被提高
三、不能聲明已經被聲明過的常量 或者var 聲明過的變量
使用const聲明變量的時候 有以下的規則
一、聲明的時候必須賦值
二、聲明的常量是基本的數據類型 值是不能夠被改變的
聲明的常量是引用類型 只要這個變量的地址不被改變 值是能夠改變的io