這篇文章主要由於只是我的對ES6的不完整的理解,寫的不是很生動,若是有比較瞭解的歡迎糾錯。數組
1.箭頭函數
省略 function 省略return;
原來的promise
function (){ retrun... } 變成 () = >
2.const 和 let閉包
const過程大概爲檢測 命名是否內存中存在? 報錯 :命名 ;
命名過程當中,若是函數出錯,命名依舊佔過去,不能再從新給函數定義這個命名。異步
var x; const x = () => {...}//報錯,命名已經存在 const y = () => {console.log(1)//報錯,miss },定義函數失敗 const y = () => {console.log(1)}//報錯,命名已存在
let做用於塊級做用域,從我膚淺的理解角度,就相似個閉包的參數。因此無法再同一做用域用let定義同一個參數。閉包參數有個特點,對外爲變量,爲內爲常量。函數
let x = 1; let x = 2;//報錯,x已經被聲明。 function test(){let x = 3};//不報錯 for(var i = 0;i < 5;i++){ setTimeout(() => {console.log(i)},1000) }// 5 5 5 5 5 for(let i = 0;i < 5;i++){ setTimeout(() => {console.log(i)},1000) }// 0 1 2 3 4 這實際等於 var n = (t) =>{setTimeout(() => {console.log(t)},1000)} for(var i = 0;i < 5;i++){ n(i); }
3.promises
異步處理功能
定義一個函數爲new Promise(),Promises裏面有倆個參數對象,resolve //成功,reject //失敗,這倆個參數寫在函數的最後面,表示這個函數是否是執行成功了。
resolve和reject能夠帶入本身的參數。
.then()能夠無限鏈下去。我我的以爲這個能夠封裝一個方法。this
var con1 = new Promise(function(resolve,reject){ setTimeout(() => {console.log(1);true?resolve('成功'):reject('失敗')},1000) }) var con2 = (t) => {setTimeout(() => {console.log(t)},1000)}; con1.then((resolve的參數) => {con2(resolve的參數)},(reject的參數) => {con2(reject的參數)})
4.class
class應該是涉及到了原型鏈,原型鏈就是一個函數的原型函數,區別於構造函數。主要用於繼承。
我理解的繼承的意義就是提升代碼複用率。rest
class test1{ testOne(){console.log('this is test1.testOne')} } class test2 extends test1{ testTwo(){console.log('this is test2.testTwo')} } var test3 = new test2(); test3.testOne();//this is test1.testOne test3.testTwo();//this is test1.testTwo
5.數組合並rest
rest的寫法就是...code
var testRest = (...x) => {console.log(x)}; tesrRest(1,2,3)//[1,2,3] const a = [1,2,3]; const b = [4,5,6]; const c = [...a,...b];//[1,2,3,4,5,6]
6.遍歷forEach對象
c.forEach(function(data){ console.log(data) })//1 2 3 4 5 6
7.默認值繼承
var z = undefined; var x1 = z||'默認值z';//默認值z var y = 'y'; var x2 = y||'默認值y';//y var q = false; var x3 = q||'默認值q';//默認值q var w = null; var x4 = w||'默認值w';//默認值w var e = ''; var x5 = e||'默認值e';//默認值e
我以爲這裏面最沒怎麼踩懂的就是class 由於原型鏈仍是沒有能徹底弄懂 踩得最忐忑的就是 promise 由於這裏面的格式太侷限了,並且網上找的解釋不少不解釋reslove和reject的判斷條件