es出來很長時間了 幾年前刷了一遍 忘光光,? 現在把常用的總結一遍復習一下
注: 因為是總結梳理,下面不貼例子.
1. let, const, var
先說var吧,在es5的時候,js中只有 全局作用域 和 函數作用域,var 又兩個問題 第一是:變量提升重復聲明? 第二:可以跨塊作用域訪問
所以在es6 提出了let 和const. let const
????????????????????????????????????????????????????????????共同點: 1.塊級作用域? 2.不可以重復聲明? 3.不會變量提升.
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 不同點: 1.const 在聲明的時候必須賦值,let 可以不用,默認是undefine?
?????????????????????????????????????????????????????????????????????????2.const? ?對于 對象和數組? 是存儲的的是變量的地址,一旦賦值不可? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?以改變,但是可以 對對象和數組里面的值改變?
2. 箭頭函數
? ? 箭頭函數在mdn上面的描述:?箭頭函數表達式的語法比函數表達式更簡潔乡括,并且沒有自己的this众眨,arguments,super或?new.target纪铺。這些函數表達式更適用于那些本來需要匿名函數的地方,并且它們不能用作構造函數碟渺。
好啦,直接總結一下吧!
? ? 1. 箭頭函數沒有自己this,在聲明的時候就調用父級的this,并且使用apply bind 并不能改變this指向,所以回掉函數中不要使用箭頭函數.
? ? 2. 箭頭函數沒有agruments ,callee , caller , prototype 也不能被new,所以也無法作為一個構造函數.
? ? 3. 箭頭函數在class 里面聲明,是屬于實例方法.
上次突發(fā)狀況,不得不倉促發(fā)布.下面繼續(xù)..