1. 程式人生 > 實用技巧 >Es6(2)

Es6(2)

1.模板字串

 <script>
    //模板字串 `` tab上邊的那個鍵
    //1.宣告模板字串
    let str = `我是一個 字串哦`
     console.log(str,typeof str)//我是一個 字串哦 string
    //2.內容可以直接出現換行符
    let str1 =`<ul>
                    <li>tom</li>
                    <li>jom</li>
                    <li>sam<
/li> </ul>` console.log(str1)//原樣輸出字串 //3變數拼接 let pre ="bill" let out =`${pre}愛打程式碼`//${變數名},``為模板字串 console.log(out)//bill愛打程式碼 </script>

2.物件簡化寫法

<script>
    //ES6允許在大括號裡面,直接寫入變數和函式,作為物件的屬性和方法
    //這樣的書寫更簡潔
    let name =  'bill'
    let age 
= '28' function fn(){ console.log("打程式碼") } //ES6之前 let obj = { name: name, age :age, todo :fn, // 方法簡化 anhao (){ console.log("打程式碼") } } // } //簡化後 let obj1 = {name,age,fn} </script>

3.箭頭函式

 <script>
     //ES6允許使用[箭頭](=>)定義函式
     //1.宣告一個函式
     let fn = function () {
       
     }
     let fun =(a,b)=>{
      return a+b
     }
     //2.呼叫函式
     let result = fn(1,2)
     console.log(result)//3

     //3.箭頭函式與與原始函式的區別
        //a. this是靜態的,this始終指向函式宣告時所在作用域下的this的值
        function getName() {
          console.log(this.name)
        }
        let getName1=()=>{
          console.log(this.name)
        }
        //設定window物件的name屬性
        window.name ='bill';
        const pre ={
          name :'jack'
        }

        //直接 呼叫
        getName() //bill
        getName1() //bill

        //call方法呼叫
        getName1.call(pre) //bill
        getName.call(pre) //jack
        //2.箭頭函式不能作為構造例項化物件

        //3.箭頭函式不能使用arguments
        //4.簡寫
            //a.省略小括號,當形參有且只有一個時
            let add = n=>{
              return n+n
            }
            console.log(add(9))//18
            //b.省略花括號,當代碼體只用一條語句時
            let pow =n=> n*n
            console.log(pow(9))//81
     </script>

4.箭頭函式的小案例

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    div{width: 200px;
      height: 200px;
      background-color: pink;
    }
    
  </style>
</head>
<body>
  <div id="dv"></div>
  <script>
    let dvObj = document.getElementById("dv")
   
    dvObj.addEventListener("click",function(){
      
      setInterval(()=>{
        this.style.backgroundColor='red'
      },2000)
    })
//箭頭函式適合與this無關的回撥,定時器,陣列的方法回撥 //箭頭函式不適合與this有關的回撥,事件回撥,物件方法
</script>

</body>
</html>

5.函式引數的預設值 設定

 <script>
    //1.引數預設值
    function add (a,b,c){
      return a+b+c
    }
    console.log(add(1,2))//nan 因為c為undifined,所以是nan
    console.log(add(1,2,3))//6
    function mul (a,b,c=1){
      return a*b*c
    }
    console.log(mul(1,2))//2
    console.log(mul(1,2,2))//4因為給了c預設值了為1

    //2.與結構賦值結合
    function connect({host="127.0.0.1",usename,password,port}){
        console.log(host)
        console.log(usename)
        console.log(password)
        console.log(port)



    }
    connect({
      host:'lochost',
      usename :'root',
      password:'root',
      port :'8808'
    })
  </script>