ES6 你母雞啦的事

0.前言

首先价卤,先祝大家圣誕節(jié)快樂掷空,接下來森哥又來開車了啊!!!想上車的盡快買票啊!!!今天想和大家聊一聊我對ES6的新特性理解吭狡,那么宅倒,不懂得編程的人攘宙,心里是不是在想這TM是啥,那好我來告訴你這TM是什么拐迁。

</br>

1.簡介

ES6是ECMAScript6.0版本的簡稱蹭劈,因為當前版本的ES6是在2015年發(fā)布的,所以又稱ECMAScript 2015线召。它的目標铺韧,是使得JavaScript語言可以用來編寫復雜的大型應用程序,成為企業(yè)級開發(fā)語言缓淹。

詳細請點擊這里

2.說說我對ES6新特性的認識

  1. let和const
  1. 解構(gòu)賦值
  2. 箭頭函數(shù) ()=>{}
  3. 展開運算符
  4. includes
  5. class
  6. Set()和Map()

3.代碼實現(xiàn)

3.1 let
let 命令定義變量的
{
          {
            // console.log(b);//undefined
            // console.log(a);//沒有聲明的提升  報錯
            let a = 10;//塊級作用域變量
            var b = "abc";//全局作用域變量
            console.log(a);//10
            console.log(b);//abc
            var b = true;
            console.log(b);//true
            // let a = "aaa"; //報錯
            // let b = "bbb";//報錯
          }
            // console.log(a);//報錯!
}
        // console.log(a);//報錯!
        console.log(b);//true
這些報錯的是為什么呢祟蚀?那么繼續(xù)看下去吧!8盥簟!

</br>

ES5
1.var 全局作用域 函數(shù)作用域
2."聲明提升"可以在聲明之前或者聲明之后來使用這個變量
ES6 新增
let 聲明塊級作用域變量
** 注意**

  1. let沒有聲明提升患雏,必須先聲明后使用鹏溯。
  2. let聲明的變量不能與前面let var const聲明的變量重名
3.1.2 const
const 命令用來聲明常量(常量不能修改,也可以說成是只讀變量)
const PI = 3.1415926;//只讀變量
        // PI = 200 // 報錯 const聲明的變量必須初始化 一旦初始化完畢就不允許更改
        {
            const VERSION = "1.0.1";
            console.log(VERSION);
        }
        // console.log(VERSION);//報錯
這又是為啥呢淹仑,怎么又會報錯了呢丙挽!因為...

</br>

const 是常量修飾符
注意

  1. const聲明的變量肺孵,必須在聲明的同時進行賦值
  2. const聲明的變量也是一個塊級作用域常量;
  3. const聲明的變量沒有聲明提升颜阐,必須先聲明后使用
  4. const聲明的變量不能與前面let var const聲明的變量重名

3.2解構(gòu)賦值

解構(gòu)賦值:對某種結(jié)構(gòu)進行解析平窘,然后將解析出來的值賦值給相關的變量
3.2.1 數(shù)組解構(gòu)賦值
1.
var [a,b,c] = [11,12,13];
console.log(a,b,c);//輸出11,12,13
2.賦值要結(jié)構(gòu)一樣,要不然就會......
var [e,f,g,k] = [[1,[2,3],5]];
console.log(e,f,g,k);//輸出[1, Array[2], 5] undefined undefined undefined
3.正確的賦值
var [e,f,g,k] = [1,2,3,5];
console.log(e,f,g,k);//輸出1,2,3,5
3.2.2 對象解構(gòu)賦值
var {name,age} = {name:"張三",age:"20"}
console.log(name,age);//輸出 張三凳怨,20
3.2.3 字符串解構(gòu)賦值
var [a, b] = "str";
console.log(a,b);//輸出a:s b:t
3.2.4 解析json數(shù)據(jù)
var jsonData = {"name":"tom","age":20,"sex":"男"};
var {name,age,sex} = jsonData;
console.log(name,age,sex);輸出//tom 20 男
3.2.5 應用
//應用
var f1 = 88;
var f2 = 99;
[f1,f2] = [f2,f1];
這里是把f1的值賦給f2瑰艘,f2的值賦給f1.
console.log(f1,f2);//輸出99,88

3.3箭頭函數(shù)

ES6可以使用“箭頭”(=>)定義函數(shù)
3.3.1 具有一個參數(shù)的簡單函數(shù)
var func1 = a => a
console.log(func1("hello, world")) //輸出 hello, world
3.3.2 沒有參數(shù)的函數(shù)
//沒有參數(shù)的函數(shù)
var func2 = ()=>{console.log("沒有參數(shù)");};//輸出 沒有參數(shù)
func2();
3.3.3 多個參數(shù)
//多個參數(shù)的函數(shù)
var func3 = (a,b)=>{console.log(a,b);};//輸出 1000,100
fun3(1000,100);
3.3.4 應用
//打印計算1+2+....+100和
 var fun4 = (sum)=>{
    var sum = 0;
    for(var i = 0; i <= 100; i ++){
        sum += i; 
    }
    console.log(sum);//輸出 5050
}
fun4();

3.4展開運算符

展開運算符就是三個點(...),可以將數(shù)組轉(zhuǎn)為用逗號分隔的參數(shù)序列
3.4.1 關于數(shù)組展開運算符
// 關于數(shù)組 展開運算符 ...
var arr = [1,2,3,4,5];
正常打印結(jié)果
console.log(arr);//輸出 [1, 2, 3, 4, 5]
加上展開運算符之后打印的結(jié)果
console.log(...arr);//輸出 1 2 3 4 5
3.4.2函數(shù)中傳參(傳遞數(shù)組)的時候
function fun5(a,b,c,d,e,f){
    console.log(a,b,c,d,e,f);
}
正常打印結(jié)果
fun5([1,2,3,4,5,6]);//輸出 [1, 2, 3, 4, 5, 6] undefined undefined undefined undefined undefined
加上展開運算符之后打印的結(jié)果
fun5(...[11,22,33,44,55,66]);//輸出 11 22 33 44 55 66
至于為什么是undefined那么你就要去看看前面的解構(gòu)賦值了肤舞,那么我在這里就不做解釋了紫新。

</br>

3.5 includes

includes是用來表示某個數(shù)組是否包含給定的值
3.5.1 在數(shù)組中
var str1 = [1,2,3,4];
console.log(str1.includes(1));//輸出 true
3.5.2 在字符串中
var str2 = "hello";
console.log(str2.includes("e"));//輸出 true
var str3 = "hello";
console.log(str3.includes("e",3));//輸出 false

includes("字符",startIndex)查找可以輸入?yún)?shù)也可以不輸入?yún)?shù)李剖,如果不輸入?yún)?shù)芒率,就默認從第0位下標處開始查找,如果你輸入?yún)?shù)篙顺,就從你輸入的startIndex下標開始查找偶芍,一開始輸入的參數(shù)3,因為從下標3之后沒有e這個字符德玫,所以str3的輸出結(jié)果是false

3.6 class

class是ES6創(chuàng)建對象的方式
3.6.1 ES5字面量法創(chuàng)建對象
var dog = {
    name:"毛毛",
    age:3,
    color:"yellow",
    bark:function(){
         console.log("汪汪汪");
    }
}
dog.bark();// 汪汪汪
console.log(dog.name);// 毛毛
3.6.2 ES5構(gòu)造函數(shù)法創(chuàng)建對象
function Dog(name,age,color){
    this.name = name;
    this.age = age;
    this.color = color;
}
 Dog.prototype.bark = function(){
    console.log("汪汪汪汪");
 }
實例的對象
var d1 = new Dog("豆豆",2,"black");
console.log(d1);// 輸出Dog {name: "豆豆", age: 2, color: "black"}
下面咱們看一下跟ES5做個比較匪蟀,ES6是怎樣創(chuàng)建對象的......
3.6.3 ES6的class命令創(chuàng)建對象
class Dog{
    constructor(name,age,color){
        //構(gòu)造函數(shù)
        //給對象添加普通屬性
        this.name = name;
        this.age = age;
        this.color = color;
    }
    //注意:如果不寫構(gòu)造函數(shù),有一個默認的構(gòu)造函數(shù)
    //constructor(){
         //對化焕,如果你不寫構(gòu)造函數(shù)萄窜,我就是那個默認的構(gòu)造函數(shù)
    //}
    bark(){
        console.log("汪汪汪");
    }
}

var d2 = new Dog("花花",1,"white");
console.log(d2);//輸出 Dog {name: "花花", age: 1, color: "white"}
d3.bark();//輸出 汪汪汪
這時有人該說那么還不懂怎么辦,涼拌_那好撒桨,我把絕招也告訴你吧!
3.6.4 ES6創(chuàng)建對象的固定模式
//class創(chuàng)建一個類
class 類名 {
    constructor(){
        //在這里寫它應有的屬性
    }
    //在這下面寫它應有的方法
    method(){

    }
    
}

3.7 Set()和Map()

</br>

3.7.1 Set()

</br>

Set()是 ES6新增的有序列表集合(set中的元素是沒有重復的)

</br>
Set()可以調(diào)用 add()查刻、has()、delete()凤类、clear()等方法

add()

var s = new Set();
add()向set中添加元素
add(1) ;
console.log(s);// 輸出 Set {1}  這樣我就把1添加到了set這個對象中
console.log(s.size)//輸出 1  size可以獲取set集合中元素個數(shù)

has()

console.log(s.has(1));//輸出 true  判斷指定的值是否在set集合中 存在返回true 不存在返回false

delete()

//delete(value) 刪除指定的元素
s.delete(1);
console.log(s); //輸出  Set {}  就把Set里面的1元素刪除了

clear()

//clear()清空集合
現(xiàn)在添加一個元素到set里穗泵,讓它里面不是一個元素
s.add(2);
console.log(s);//輸出 Set {1,2}
s.clear();
console.log(s);//輸出 Set {}  就把Set里面的集合清空了
應用 數(shù)組去重
1.
var s2 = new Set([1,2,2,3,4,4,5]);
console.log(s2);//輸出 Set {1, 2, 3, 4, 5}
2.
var arr = [1,1,2,2,2,3,4,4,5];
arr = Array.from(new Set(arr));
console.log(arr);//輸出 [1, 2, 3, 4, 5]

</br>

3.7.2 Map()

</br>

Map()是 ES6新增的有序鍵值對集合谜疤,鍵值對是 key 和 value佃延,通過設置 set(key, value) 方法為 Map().

Map()同樣可以調(diào)用 add()、has()夷磕、delete()履肃、clear()等方法

add()

var map = new Map();
//set(key,value) map是用來存放 鍵值對 key/value
map.set("name","張三");
map.set("age",20);
console.log(map);//輸出 Map {"name" => "張三", "age" => 20}
//get(key) 獲取key的值
console.log(map.get("name"));//輸出 張三

has()

//has(key) 判斷是否存在某個鍵值對
console.log(map.has("age"));//輸出 true

detele()

//delete(key) 刪除這個鍵,返回true則成功坐桩,false則不成功
map.delete("name");
console.log(map);//輸出 true

clear()

//clear()清空map集合
map.clear();
console.log(map);//輸出 Map {}

4.結(jié)束語

哎尺棋,經(jīng)過我日夜奮斗,挑燈夜戰(zhàn)绵跷,終于寫完了膘螟,你什么表情俺筛!!我就夸張一下荆残,我現(xiàn)在可以體會到那些作家的不容易了奴艾,寫作可以說一件很愉快的事情,但也挺累人的内斯,總而言之蕴潦,言而總之,希望我寫的東西可以對你有所幫助嘿期,當然品擎,如果你覺得我哪里寫錯了,請跟我聯(lián)系1感臁L汛!
最后蜜猾,求分享秀菱,求點贊,求上熱門蹭睡,帥哥衍菱,美女們給力哦!<缁怼脊串!

</br>
</br>

作者:劉玉森
2016.12.24
最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市清钥,隨后出現(xiàn)的幾起案子琼锋,更是在濱河造成了極大的恐慌,老刑警劉巖祟昭,帶你破解...
    沈念sama閱讀 218,682評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件缕坎,死亡現(xiàn)場離奇詭異,居然都是意外死亡篡悟,警方通過查閱死者的電腦和手機谜叹,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,277評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來搬葬,“玉大人荷腊,你說我怎么就攤上這事〖被耍” “怎么了停局?”我有些...
    開封第一講書人閱讀 165,083評論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我董栽,道長,這世上最難降的妖魔是什么企孩? 我笑而不...
    開封第一講書人閱讀 58,763評論 1 295
  • 正文 為了忘掉前任锭碳,我火速辦了婚禮,結(jié)果婚禮上勿璃,老公的妹妹穿的比我還像新娘擒抛。我一直安慰自己,他們只是感情好补疑,可當我...
    茶點故事閱讀 67,785評論 6 392
  • 文/花漫 我一把揭開白布歧沪。 她就那樣靜靜地躺著,像睡著了一般莲组。 火紅的嫁衣襯著肌膚如雪诊胞。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,624評論 1 305
  • 那天锹杈,我揣著相機與錄音撵孤,去河邊找鬼。 笑死竭望,一個胖子當著我的面吹牛邪码,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播咬清,決...
    沈念sama閱讀 40,358評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼闭专,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了旧烧?” 一聲冷哼從身側(cè)響起影钉,我...
    開封第一講書人閱讀 39,261評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎粪滤,沒想到半個月后斧拍,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,722評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡杖小,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年肆汹,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片予权。...
    茶點故事閱讀 40,030評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡昂勉,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出扫腺,到底是詐尸還是另有隱情岗照,我是刑警寧澤,帶...
    沈念sama閱讀 35,737評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站攒至,受9級特大地震影響厚者,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜迫吐,卻給世界環(huán)境...
    茶點故事閱讀 41,360評論 3 330
  • 文/蒙蒙 一库菲、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧志膀,春花似錦熙宇、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,941評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至戳稽,卻和暖如春馆蠕,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背广鳍。 一陣腳步聲響...
    開封第一講書人閱讀 33,057評論 1 270
  • 我被黑心中介騙來泰國打工荆几, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人赊时。 一個月前我還...
    沈念sama閱讀 48,237評論 3 371
  • 正文 我出身青樓吨铸,卻偏偏與公主長得像,于是被迫代替她去往敵國和親祖秒。 傳聞我的和親對象是個殘疾皇子诞吱,可洞房花燭夜當晚...
    茶點故事閱讀 44,976評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 官方中文版原文鏈接 感謝社區(qū)中各位的大力支持,譯者再次奉上一點點福利:阿里云產(chǎn)品券竭缝,享受所有官網(wǎng)優(yōu)惠房维,并抽取幸運大...
    HetfieldJoe閱讀 3,037評論 3 37
  • 一、ES6簡介 ? 歷時將近6年的時間來制定的新 ECMAScript 標準 ECMAScript 6(亦稱 ...
    一歲一枯榮_閱讀 6,078評論 8 25
  • 1.數(shù)組的解構(gòu)賦值 2.對象的解構(gòu)賦值 3.字符串的解構(gòu)賦值 4.數(shù)值和布爾值的解構(gòu)賦值 5.函數(shù)參數(shù)的解構(gòu)賦值 ...
    卞卞村長L閱讀 917評論 0 0
  • 基本用法 ES6 允許按照一定模式抬纸,從數(shù)組和對象中提取值咙俩,對變量進行賦值,這被稱為解構(gòu)(Destructuring...
    嘉奇呦_nice閱讀 789評論 0 2
  • 你在遙遠的那方湿故, 我從沒去過阿趁, 因為太遙遠。 我在這座孤島 時常盼著月亮坛猪, 可又覺得能再多一些星星就好了脖阵。 月亮也...
    幽幽淡墨痕閱讀 198評論 1 3