## var
JavaScript腳本都可以省略var。
但是,某些時候,日過我們要強調是新聲明了一個變量,那就必須使用var了。
用var和不用var的區別:
- 加var: 重新定義一個新的變量。
- 不加var: 代表賦值,它會判斷如果這個變量存在就賦值,不存在就定義一個新變量(而且是window的屬性(全局的)).變量搜索范圍:首先看當前函數體內有沒有局部變量,沒有得話就到window中找,如果window中也沒有就返回undefined
> 特別注意:在一個函數體內定義一個變量,那它的作用域對整個函數體有效!
## let
let是更完美的var
- let聲明的變量擁有塊級作用域,let聲明仍然保留了提升的特性,但不會盲目提升。
- let聲明的全局變量不是全局對象的屬性。不可以通過window.變量名的方式訪問
- 形如for (let x…)的循環在每次迭代時都為x創建新的綁定
- let聲明的變量直到控制流到達該變量被定義的代碼行時才會被裝載,所以在到達之前使用該變量會觸發錯誤。
## const
定義常量值,不可以重新賦值,但是如果值是一個對象,可以改變對象里的屬性值
```js
const OBJ = {"a":1, "b":2};
OBJ.a = 3;
OBJ = {};// 重新賦值,報錯!
console.log(OBJ.a); // 3
```
- 說明
- CSS與HTML
- BFC的特性及其常見應用
- CSS深入理解之margin
- CSS深入理解之line-height
- CSS盒模型相關知識
- CSS知識總結
- HTML知識總結
- 三欄布局五種方式
- JavaScript內置對象
- 1.循環
- 2.數組方法對比
- 3.字符串實用常操紀要
- JavaScript核心
- var、let、const定義變量
- this 的指向問題詳解
- 箭頭函數
- ES6部分知識歸納
- ES6的Class
- Promise和Async/await
- 面向對象的概念及JS中的表現
- 創建對象的九種方式
- JS的繼承
- 閉包總結
- 構造函數與作用域
- 原型與原型鏈
- 函數的四種調用模式
- apply、call、bind詳解
- JavaScript應用
- 1.JavaScript實現深拷貝與淺拷貝
- 2.函數防抖與節流
- 3.無阻塞腳本加載技術
- DOM
- 如何寫出高性能DOM?
- 事件探秘
- 事件委托
- 操作DOM常用API詳解
- 重排和重繪
- 運行機制與V8
- 瀏覽器的線程和進程
- Vue.js
- Vue.js知識點總結
- Vue-Router知識點總結
- 父子組件之間通信的十種方式
- 優化首屏加載
- 關于Vuex
- 前端路由原理及實現
- 在Vue.js編寫更好的v-for循環的6種技巧
- 12個Vue.js開發技巧和竅門
- 網絡協議
- HTTP緩存機制
- UDP協議
- TCP協議
- HTTPS協議
- HTTPS的背景知識、協議的需求、設計的難點
- HTTPS與HTTP的區別
- 框架與架構
- MVC、MVP、MVVM
- Gulp與Webpack的區別
- Angular React 和 Vue的比較
- 虛擬DOM和實際的DOM有何不同?
- 架構問題
- 工程化
- npm link命令
- npm scripts 使用指南
- 前端工程簡史
- 常見的構建工具及其對比
- Webpack基本配置與概念
- 設計模式
- 工廠設計模式
- 單例設計模式
- 適配器模式
- 裝飾器模式