塊級做用域: ES6容許你使用塊級做用域,不過目前大多數的ES6語法只容許在嚴格模式下使用("use strict」 )。html
1 let關鍵字數組
做用:聲明變量,一個花括號就是一個做用域(每一個花括號內就是全新變量).瀏覽器
特色:不在進行聲明提高,在塊做用域外沒法訪問變量,和const同樣只能聲明一次.函數
關鍵字:let , const,function,class ES6下均可以以塊爲做用域 借鑑:https://blog.csdn.net/kittyjie/article/details/50337031this
//var 聲明的變量做用在定時器外的函數裏的 for(var i=0; i<5; i++){ setTimeout(function(){ alert(i); },1000); } //由於let以花括號做爲做用域,for每次循環的時候都會從新let一個變量 理解let在for循環中:https://zhuanlan.zhihu.com/p/51966830 //let變量做用在括號,且外部沒法訪問 for(let i=0; i<5; i++){ setTimeout(function(){ alert(i); },1000); }
2 const聲明常量spa
做用:定義一個常量.net
特色:不會聲明提高,以塊爲做用域,值沒法更改,只能聲明一次.指針
//將對象設置爲常量,它的值是能夠修改的 //由於咱們常量的值,只是在棧內存中保存的指向對象的指針 數據類型的棧和堆內存:http://www.javashuo.com/article/p-wsixnxkc-hr.html const obj = {a:1,b:2,c:3} obj.a = 100; console.log(obj.a); //10
3 箭頭函數code
做用:經過簡潔的格式聲明一個函數htm
特色:比傳統函數格式簡潔(省略了function,return,單個形參時括號),且this指向是上級函數的指向
//普通函數聲明格式 var a = function(){ return 1+1; } //箭頭函數聲明格式 var a = x =>{ 1 + 1; } //多個參數 var a = (x,y,z) =>{ 1 + 1; }
4 Destructuring解構
做用:能夠經過解構方式來取值
//通常定義變量寫法 var x=10,y=20,z=30; //解構賦值容許你給多個變量賦值 let [x,y,z] = [10,20,30]; let [x,[a,b],y] = [10,[15,18],20]; 這並非在定義數組,而是經過等號兩邊的結構匹配,進行賦值。 //解構賦值容許你少取一個值: let [x,y] = [10,20,30]; //結果x=10,y=20 let [x,[a,b],y] = [10,[5],20]; //結果x=10,a=5,y=20,b=undefined 瀏覽器並不會報錯,依然賦值成功。 //能夠使用對象不按照順序取值
var {id,name,age} = {name:'yt',age:30,id=30}
//用途 //能夠方便的交換兩個變量的值 [a,b] = [b,a];
//能夠一次爲多個變量取值 [a,b] = () =>{ return [1,2] }
//對象格式能夠不考慮取值順序 {a,b,c} = {b:1,a:2,c:3}
//從數組或對象的某一項 var {a:NewName} = obj; //對象 var [0:NewName] = arr; //數組
總結:數組格式的能夠批量取值,對象格式的能夠打亂順序取值
5 字符串的一些方法
做用:ECMA6字符串能夠更快捷的拼接字符串
//快捷的字符串拼接 var str = `我是ECMA${變量、表達式}字符串` //字符串中的換行不會報錯 var str = ` 不會報錯!! `
6 數組的一些方法
Array.from(僞數組) //能夠將僞數組轉換爲數組
Array.copyWithin(被替換元素下標,截取開始下標,截取結束下標); //複製元素替換元素(一條龍服務)
Array.find(function(value,index,arr){ return value > 10 }) //和過濾相似,只找一次符合條件的元素.
findIndex(function(value, index, arr){}) //和find相似,不過返回的是符合一次要求的元素的下標
7 Object.assign
8 第七種數據類型Symbol
9 Set和Map集合
10 Map集合,即映射