zoukankan      html  css  js  c++  java
  • ES6

    ECMAScript 6认知

    ECMAScript 6.0(以下简称 ES6)是 JavaScript 语言的下一代标准,已经在 2015 年 6 月正式发布了。它的目标,是使得 JavaScript 语言可以用来编写复杂的大型应用程序,成为企业级开发语言。

    ECMA:国际标准组织

    let,var和const命令

    let: 是用来声明变量,它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效。
      先声明后使用,不存在变量提升,不能重复定义,但是可以修改,(let块级作用域) var: 既可以先声明后使用,也可以先使用后声明,这样不会报错,会打印undified,
      而let必须是先声明后使用,如果没有声明就会报错,为全局作用域 const: 声明的变量,只声明常量 ,一旦声明 不可改变
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <title>Title</title>
    
    </head>
    <body>
    <script type="text/javascript">
         // <!--声明变量 一个{}为一个作用域 -->
        //  var 既可以先声明后使用,也可以先使用后声明 全局 ---> 变量提升
        {
            var a = 12;
        }
        // 变量提升
        console.log(a);
    
        // let 块级作用域
         {
            let b = 12;
        }
        console.log(b);   // 报错
    
    
         // const  只声明常量 ,一旦声明 不可改变
        const c = 13;
        c = 14;
        console.log(c)   //  报错
    </script>
    
    </body>
    </html>

    模板字符串

    模板字符串(template string)是增强版的字符串,用反引号(`)标识。它可以当作普通字符串使用,也可以用来定义多行字符串,或者在字符串中嵌入变量。

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <title>Title</title>
     <script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script>
    </head>
    <body>
    <ul>
        <li>
    
        </li>
    </ul>
    <script type="text/javascript">
     
        //  2: 模板字符串`` , r如果你想插入变量${变量名}
        var name = 'study',who = 'me';
    //    var str = name+","+who+"学习使我快乐";
    
        var str = `${name},${who}学习使我快乐`;
        console.log(str);    // study,me学习使我快乐
    
    
         var url = 'http://www.cnblogs.com/jassin-du/';
         $('ul>li').append(
            `<a href=${url}></a>`
        )
    </script>
    
    </body>
    </html>

    箭头函数  =>

        // 箭头函数 =>
         var add2 = (a,b)=>{
             console.log(a-b)
        };
        add2(5,4);  // 1
    
        //  字面量方式声明对象
        var person = {
            name:'lishi',
            age:18,
            fav:()=> {
                // 使用箭头函数会改变this的指向,指向了父级元素
                console.log(this);  // window
                console.log(this.name) // lishi
    
            }
        };
        person.fav();

    对象的单体模式

    --- (解决箭头函数的指向问题

        // 4 对象的单体模式 -->解决箭头函数的指向问题
        var person2 = {
            name: 'lishi',
            fav(){
                console.log(this)
            }
        };
    
        person2.fav()  // 指向对象

     面向对象

    // 对象的三大特性 封装 继承 多态 
    
    // 函数的作用:封装一块代码,复用,作用域 解决代码的重用性 ,我们写“僵尸代码”, 代码可维护性特别差 
    
    // 继承的作用:少写 特点:子类继承父类,拥有父类的所有属性和方法,还可以有自己的属性和方法
    
    
    // 多态: 代码可重性  解耦合 
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <title>Title</title>
    </head>
    <body>
    <script type="text/javascript">
        // 对象的三大特征  封装 继承 多态
    /*
        //  es5的构造对象方式   使用构造函数来创建对象
    
        //  构造对象唯一的不同,函数名首字母大写
        function Animal(name,age) {
            // 点语法  set语法和get语法
            this.name = name;       // 属性
            this.age = age;
    
            // get语法
    //        this.name  直接console
    
        }
        Animal.prototype.showName = function () {
            console.log(this.name)
        };
    
        var a = new Animal("大黄",8);
    
        console.log(a.age);   // 8
        a.showName();         // 大黄
    */
        // es6 是使用class构造函数
        class Animal{
            // 里面用对象的单体模式添加函数
            constructor(name = "大黄",age = 8){
                this.name = name;
                this.age = age;
            }
            showName(){  // 函数
                console.log(this.age)
            }
        }
        var a = new Animal();
        a.showName();   // 8
    
    
    
    </script>
    
    
    </body>
    </html>
  • 相关阅读:
    [转]九种常用排序的性能分析总结
    BOWER安装BOOTSTRAP
    nodejs+react构建仿知乎的小Demo
    2017-10-31
    React Mixin
    React:组件的生命周期
    入门书目
    内存溢出和内存泄漏的区别
    javascript中不易分清的slice,splice和split三个函数
    react安装
  • 原文地址:https://www.cnblogs.com/jassin-du/p/8697144.html
Copyright © 2011-2022 走看看