#### let和var的區別
- let不會變量提升
- var會變量提升
~~~
console.log(example)
var example=1
~~~
它不會報錯:

如果是let
~~~
console.log(ex2)
let ex2=2
~~~
他會報錯:

因為js在執行代碼的時候,首先都會把var的變量提升到最頂部,然后在自己所在的位置再給他賦值,所以第一個不會報錯,而Let的化,它不會提升所以會報錯
#### let的使用
- 一般情況下,使用Let都會放在封閉代碼的頂部,以便整個代碼塊都可以訪問
- 如果再統一執行環境下,var 一個變量 再同時let 一個同名變量會報語法錯誤
~~~
var count = 30;
let count = 40;
~~~

- 但是在不同執行環境下就不會報錯如:
~~~
var count = 30;
if(true){
let count = 40;
}
console.log(count)
~~~

由let 后面的變量一離開 {}代碼塊,就會立即被銷毀,所以上面打印出來的值是30
## const
- const是常量,一旦聲明了就無法更改
- const必須初始化(即必須賦初始值),不然會報錯:
~~~
const age;
console.log(age)
~~~

一般情況下要這么寫:
~~~
const age = 10;
console.log(age)
~~~
- const和let一樣,也是塊級標識符,所以const 只在當前代碼塊內有效,一旦執行到塊外,就會被銷毀,同樣const也不會被提升至作用域頂部
****
TDZ(臨時死區)
與var 不同,let以及const 并不會變量提升,當Js引擎搜索變量聲明時,要么把變量提升至作用域頂部(var),要么將聲明放入臨時死區,訪問臨時死區的變量就會觸發運行錯誤:
如:
~~~
if(true){
console.log(typeof value);//引用錯誤
let value = "blue"
}
~~~
~~~
console.log(typfof value);//undefinded
if(true){
let value = 'blue'
}
~~~
- 空白目錄
- Javascript
- angularjs
- 自定義指令
- scope
- 自定義指令的封裝
- 自定義指令限制只能輸入數字
- 輪播圖
- 寫angular的順序
- $state
- video
- Es6
- Let
- 箭頭函數
- export
- promise
- 函數
- vue
- vue安裝,以及項目結構
- vue的使用
- easy-vue
- vue起步
- vue基礎
- vue-router
- vue-各文件的依賴關系
- vuex
- vue使用sass語法
- mpvue使用wx.parse
- vue-cli 構建vue項目
- vant的使用
- vue使用插件及常見問題
- 原生Js
- 數組
- ajax
- 執行上下文
- 正則表達式
- jqurey
- jqurey-mobile
- html5
- 工具
- svn使用總結
- webpack
- webpack的構建
- WebStorm
- 切圖相關
- 蘋果手機注意事項
- other
- 前端的價值
- 面試相關
- css
- 小程序如何引用外部字體
- 流的理解
- 替換元素
- content和偽元素
- padding和background 繪制圖形
- css圓角,陰影,漸變
- line-height verticle-align
- 使用background繪制4個直角
- android的字體偏上的問題
- 小程序
- 小程序常見問題
- 小程序常用效果
- mpvue
- nodejs
- 前端工程化學習筆記
- mork.js學習