ES6快速入門(一)

如何在瀏覽器中使用es6的語法呢?

方法一:引入文件相關(guān)js文件

 <script src="traceur.js"></script>
 <script src="bootstrap.js"></script>  //引導(dǎo)程序  ---  跟css的bootstrap無關(guān)
 <script type="module">
      //code  這里寫你的代碼
 </script>

方法二:

在線編譯 測試 --- https://babeljs.io/repl/

注意:玩ES6的時候,用嚴(yán)格模式('use strict'),如果不出問題的情況下,不用加編譯,出問題再加。

1. 變量定義(let)和常量定義(const)

let 定義變量 (瀏覽器已經(jīng)支持),有塊級別作用域(只在本塊有用,不會影響其他的)
 {
    let a = 12;
 }
alert(a);  //不能用

應(yīng)用:可解決i值的問題。

        let aBtn = document.getElementsByTagName('input');
        for(let i = 0;i<aBtn.length;i++){
            aBtn[i].onclick = function(){
                alert(i);   //點誰就彈幾
            };
        }   

注意:let不能重復(fù)定義同一變量。
錯誤示例:

  'use strict'
   let a = 12;
   let a = 5;
   alert(a);   //會報錯
定義常量(const)
  const a = 'Tab';
  alert(a);
1.不能重復(fù)定義
2.常量不能修改    

2.字符串模板引擎(字符串拼接)

Es6的這種新的“字符串拼接”方法比較簡單,沒有繁瑣的加號和引號,只需要在所需要的字符串“邊界”加上``即可。(鍵盤 tab上面那個鍵 ${變量} 鍵盤 tab上面那個鍵)

    var name = 'Datura';
    var age = 18;
    var sex = '其它';
    var hobby = '敲代碼';
    var str1 = `我是${name},今年${age}歲,性別${sex}的了,愛好${hobby}`; //注意此處有兩個“ `` ”
    var str2 = '我是'+name+',今年'+age+'歲,性別'+sex+',愛好'+hobby+''; //這個是原來的寫法
    alert(st1r);

3. 解構(gòu)賦值

就根據(jù)“對應(yīng)”賦值,請看以下幾個例子:

 'use strict';
let a = 12;
 let b = 5;
 let c = 8;
//相當(dāng)于
let [a,b,c] = [12,5,8];
console.log(a,b,c);  //12 5 8

json格式的賦值

let {a,b,c} = {a:12,b:5,c:8};
console.log(a,b,c);   //12  5  8
//數(shù)組里面嵌套數(shù)組
let [a,[b,c],d] = [12,[1,3],8];
console.log(a,b,c,d);   // 12  1  3  8
與順序無關(guān),與結(jié)構(gòu)有關(guān)(左右結(jié)構(gòu)一致):
let {a,b,c} = {b:5,a:12,c:8};
console.log(a,b,c);   //12  5  8

應(yīng)用,我們現(xiàn)在利用jsonp獲取了一組數(shù)據(jù)

let json = {
        q:"aaa",
        p:false,
        s:["aaa云主機","愛奇藝vip免費試用","啊aaaaaaaa視頻","aaaa","愛奇藝","aaa電池","工商銀行","aaai","aaa短信轟炸機"]
    };
    
    let {s,q} = json;
    console.log(s,q);  //s為那組數(shù)組的數(shù)據(jù),q為字符串a(chǎn)aa

解構(gòu)賦值的默認(rèn)值問題

let {time=1000,id=0} = {};
console.log(time,id);   //  1000   0

4.神奇的“三個點”

我之前的文章曾提到過數(shù)組或者對象的深淺拷貝問題,今天我們就利用es6的三個點來處理下。

    var arr = [12,5,8];
    arr2 =arr;
    arr2.pop();
    alert(arr);  // 12 5

上面的代碼就是arr2與arr公用一段內(nèi)存地址,所以導(dǎo)致srr2數(shù)據(jù)改變的時候arr也必然會變的。這就是淺拷貝。那么我們下面就簡單的說幾種深度復(fù)制數(shù)組方式。
方式一:利用for循環(huán)把原數(shù)組的每一項都遍歷,然后扔到新的數(shù)組中。

    var arr = [12,5,8];
    var arr2 =[];
    for(var i = 0;i<arr.length;i++){
        arr2.push(arr[i]);  
    }
    arr2.pop();
    alert(arr);   //  12  5  8

方式二:利用Array.from(原數(shù)組);

    var arr = [12,5,8];
    var arr2 = Array.from(arr);
    arr2.pop();
    console.log(arr2);  // 12  5 
    alert(arr);   // 12  5  8

方式三:三個點

    var arr = [12,5,8];
    var arr2 = [...arr]
    arr2.pop();
    console.log(arr2);//12 5
    alert(arr);  //12 5 8

說了這么多,我們現(xiàn)在就說下“三個點”的應(yīng)用把,我們知道函數(shù)的參數(shù)是一個集合(arguments)并不是一個真正的數(shù)組。那么我們怎么才能在這個arguments中加一項呢??

    function show(){
        //因為類數(shù)組對象,并不具備數(shù)組的那些方法。所以此會報錯
        arguments.push(8);
        console.log(arguments);
    }
    show(12,5);
      function show(...arr){
        arr.push(8);
        console.log(arr);
    }
    show(12,5);  //12 5 8

當(dāng)然還有很多的對象深拷貝方式請參照(http://www.itdecent.cn/p/4e613af9509c),這里就不一一論述了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容