小生愛

        /**
            *   解构赋值
        */

        'use strict';




        // 遍历字符串
        for(let p of 'foo'){
          console.log(p);
        }




        // 查找字符串方法
        let s = 'Hello world!';
        // startsWith : 判断查找字符是否在开头 true | false
        let start = s.startsWith('Hello');
        // endsWith : 判断查找字符是否在结尾 true | false
        let end = s.endsWith('!');
        // includes : 判断是否包含查找字符 true | false
        let include = s.includes('o');




        // repeat : 重复字符串
        let str = 'x'.repeat(2.9);




        // 模板字符串 使用反引号 ``
        // 插入变量 ${变量}
        let str = `我是变量`

        document.body.innerHTML = (`
          <p>${str}</p>
          <h1>biao ti</h1>
        `)




        // 模板字符串 使用反引号 ``
        // 插入变量 ${变量}
        // 大括号里可以是任意的表达式 || 对象的属性
        let a = 1
        let b = 2
        let obj = {name: '小花'}

        $('body').html(`
          <p>${a + b}</p>
          <p>${obj.name}</p>
        `)




        // 模板字符串 使用反引号 ``
        // 模板字符串中可以使用函数
        function fn(){
          return '函数返回值'
        }

        document.body.innerHTML = `<div>${fn()}</div>`





        function fn(str){
          c(str)
        }
        // 标签模板 : 模板字符串紧跟在一个函数名后面 该函数将被调用来处理这个模板字符串
        fn`123`
        // 等价于
        fn(123)


        /**
         *  模板字符串里有变量 就不是简单的调用了 而是会讲模板字符串先处理成多个参数 再调用函数
         *  tag函数所有参数的实际值如下
              第一个参数:['Hello ', ' world ', '']
              第二个参数: 15
              第三个参数:50
        */
        
        let a = 5
        let b = 10

        function tag(s, v1, v2){
          c(s, v1, v2)
        }

        tag`Hello ${a + b} world ${a * b}`