zoukankan      html  css  js  c++  java
  • ES6(1)

    1. let关键字

    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <title>01_let关键字</title>
    </head>
    <body>
    
    <button>测试1</button>
    <br>
    <button>测试2</button>
    <br>
    <button>测试3</button>
    <br>
    <!--
    ***let
    1. 作用:
      * 与var类似, 用于声明一个变量
    2. 特点:
      * 在块作用域内有效
      * 不能重复声明
      * 不会预处理, 不存在提升
    3. 应用:
      * 循环遍历加监听
      * 使用let取代var是趋势
    -->
    <script type="text/javascript">
        //console.log(age);// age is not defined
        let age = 12;
        //let age = 13;不能重复声明
        console.log(age);
        let btns = document.getElementsByTagName('button');
      
      //var 声明
        // for(var i=0; i<btns.length; i++){
        //     (function(i){  //产生闭包
        //         btns[i].onclick=function(){
        //         alert(i)
        //     }
        //     })(i)
           
        // }
    
    //使用let
        for(let i=0; i<btns.length; i++){
    
            btns[i].onclick=function(){
              alert(i)  //i就是每个按钮的索引
            }
           
        }
    
    </script>
    </body>
    
    </html>

    2.const关键字

     1 <!DOCTYPE html>
     2 <html lang="en">
     3 <head>
     4   <meta charset="UTF-8">
     5   <title>02_const关键字</title>
     6 </head>
     7 <body>
     8 <!--
     9 1. 作用:
    10   * 定义一个常量
    11 2. 特点:
    12   * 不能修改
    13   * 其它特点同let
    14 3. 应用:
    15   * 保存不用改变的数据
    16 -->
    17 <script type="text/javascript">
    18     const sex = '';
    19     console.log(sex);
    20     //sex = '女';//不能修改
    21     console.log(sex);
    22 </script>
    23 </body>
    24 </html>

    3.变量的解构赋值

     1 <!DOCTYPE html>
     2 <html lang="en">
     3 <head>
     4   <meta charset="UTF-8">
     5   <title>03_变量的解构赋值</title>
     6 </head>
     7 <body>
     8 <!--
     9 1. 理解:
    10   * 从对象或数组中提取数据, 并赋值给变量(多个)
    11 2. 对象的解构赋值
    12   let {n, a} = {n:'tom', a:12}
    13 3. 数组的解构赋值
    14   let [a,b] = [1, 'atguigu'];
    15 4. 用途
    16   * 给多个形参赋值
    17 -->
    18 <script type="text/javascript">
    19     let obj = {name : 'kobe', age : 39};
    20 //    let name = obj.name;
    21 //    let age = obj.age;
    22 //    console.log(name, age);
    23     //对象的解构赋值
    24     let {age,name} = obj;
    25     console.log(age,name);
    26 //    let {name, age} = {name : 'kobe', age : 39};
    27 //    console.log(name, age);
    28 
    29     //3. 数组的解构赋值  不经常用
    30     let arr = ['abc', 23, true];
    31     let [a, b, c, d] = arr;
    32     console.log(a, b, c, d);
    33     //console.log(e);
    34     function person(p) {//不用解构赋值
    35         console.log(p.name, p.age);
    36     }
    37     person(obj);
    38 
    39     function person1({name, age}) {  //{name, age}=obj,结构赋值
    40      console.log(name, age);
    41     }
    42     person1(obj);
    43 
    44 
    45 </script>
    46 </body>
    47 </html>
    4.模板字符串
     1 <!DOCTYPE html>
     2 <html lang="en">
     3 <head>
     4   <meta charset="UTF-8">
     5   <title>04_模板字符串</title>
     6 </head>
     7 <body>
     8 <!--
     9 1. 模板字符串 : 简化字符串的拼接
    10   * 模板字符串必须用 `` 包含
    11   * 变化的部分使用${xxx}定义
    12 -->
    13 <script type="text/javascript">
    14     let obj = {
    15         name : 'anverson',
    16         age : 41
    17     };
    18     console.log('我叫:' + obj.name + ', 我的年龄是:' + obj.age);
    19 
    20     console.log(`我叫:${obj.name}, 我的年龄是:${obj.age}`);
    21 </script>
    22 </body>
    23 </html>
    5.简化的对象写法
     
     1 <!DOCTYPE html>
     2 <html lang="en">
     3 <head>
     4     <meta charset="UTF-8">
     5     <meta name="viewport" content="width=device-width, initial-scale=1.0">
     6     <title>Document</title>
     7 </head>
     8 <body>
     9     <script>
    10 // <!--
    11 // 简化的对象写法
    12 // * 省略同名的属性值
    13 // * 省略方法的function
    14 
    15         let name= 'cobo';
    16         let age= 45;
    17         // let obj={
    18         //     name:name,
    19         //     age:age
    20         // }
    21 
    22         // console.log(obj.name)
    23 
    24 
    25         let obj1={
    26             name,
    27             age
    28         }
    29 
    30         console.log(obj1.name)
    31 
    32 
    33             //普通额写法
    34 //    let obj = {
    35 //        x : x,
    36 //        y : y,
    37 //        getPoint : function () {
    38 //            return this.x + this.y
    39 //        }
    40 //    };
    41     //简化的写法
    42     let obj = {
    43         x,
    44         y,
    45         getPoint(){
    46             return this.x
    47         }
    48     };
    49     console.log(obj, obj.getPoint());
    50     </script>
    51 
    52 </body>
    53 </html>

     Symbol

    1

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Symbol</title>
    </head>
    <body>
        <script>
            // boolean  string  number null undefined Object
            // usonb 
            // you is so niubility
    
            //1. 创建 Symbol
            let s = Symbol();
    
            //2. 传入字符串描述创建
            let s2 = Symbol("UP");
            let s3 = Symbol("UP");
    
            //3. 调用对象的方法创建
            let s4 = Symbol.for("Down");
            let s5 = Symbol.for("Down");
    
            console.log(s4 === s5);
        </script>
    </body>
    </html>

    2

    <!DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
    </head>
    
    <body>
        <script>
            //创建一个对象
            let obj = {
                a: 'xxx',
                run: function(){
                    console.log("abc");
                }
            }
    
            //快速向对象中添加一个方法 run => 输出 测试
            // obj.run = function(){
            // };
    
            //通过 Symbol 添加属性或者方法
            // let run = Symbol('run');//121y212joi1hro1j2lke1
            // obj[run] = function () {
            //     console.log('测试');
            // };
    
            // console.log(obj);
    
            // console.log(obj.run());
            // console.log(obj[run]());
    
    
            let up = Symbol('up');
            
            let game = {
                name: "飞机大战",
                [up]: function(){
                    console.log("向上")
                },
                [Symbol('down')]: function(){
                    console.log("向下");
                }
            };
            console.log(game);
        </script>
    </body>
    
    </html>

    3

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Symbol属性遍历</title>
    </head>
    <body>
        <script>
            let game = {
                name: "飞机大战",
                [Symbol('up')]: function(){
                    console.log('向上')
                },
                [Symbol('down')]: function(){
                    console.log('向下')
                },
                [Symbol('left')]: function(){
                    console.log('向左')
                },
                [Symbol('right')]: function(){
                    console.log('向右')
                },
            }
            //1. for...in 不能遍历 Symbol 类型的属性
            for(let i in game){
                console.log(i);
            }
    
            //2. Reflect.ownKeys 反射得到对象所有的属性名, 返回一个数组
            let attrs = Reflect.ownKeys(game);
    
            //遍历数组
            for(let i=0;i<attrs.length;i++){
                // attrs[0] = name
                // attrs[1] = Symbol('up')
                console.log(attrs[i])
                console.log(game[attrs[i]]);
            }
        </script>
    </body>
    </html>

    4

    <!DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Symbol内置属性</title>
    </head>
    
    <body>
        <script>
            // Symbol 是一个函数还是一个对象   Symbol('abc')  Symbol.for() 函数对象
            // Symbol 内置属性都是固定的写法    $().attr html
            // Symbol 的内置属性是为了扩展对象的功能
    
            let school = {
                name: "尚硅谷",
                //当对象用来判断类型的时候
                [Symbol.hasInstance]: function(){
                    console.log('我被当做类型检测啦!!');
                    return true;
                },
                //
                [Symbol.match]: function(){
                    console.log("我被当做正则放在了 match 中调用");
                    return 123456;
                }
            };
    
            let obj = {};
            //检测类型
            console.log(obj instanceof school);
    
            //用作正则使用
            let str = "iloveyou";
            console.log(str.match(school));
    
    
        </script>
    </body>
    
    </html>
  • 相关阅读:
    2019春总结作业
    第十二周作业及总结
    第十一周作业及总结
    第十周编程及总结
    第九周作业及总结
    第八周作业及总结
    第五周作业及总结
    第四周Java作业及总结
    第三周总结
    第二周总结
  • 原文地址:https://www.cnblogs.com/fsg6/p/13055959.html
Copyright © 2011-2022 走看看