ES6新增的常用语法 - 前端笔记-ES6新增的常用语法 一.let定义变量 使用let声明变量可以重新赋值,但是不能在同一作用域内重新声明(在函数体内不能重复声明)let也没有变量提升,预解...

学习笔记

点滴记忆
回忆过往
首页>> web前端 >>ES6新增的常用语法 - 前端笔记
2017-12-27
分类: web前端

ES6新增的常用语法

文章作者:痴迷

ES6新增的常用语法     一. let定义变量    使用let声明变量可以重新赋值,但是不能在同一作用域内重新声明(在函数体内不能重复声明......

ES6新增的常用语法
    一. let定义变量
  
使用let声明变量可以重新赋值,但是不能在同一作用域内重新声明(在函数体内不能重复声明)let 也没有变量提升,预解析的概念
    <script>
        let a = 1;
        console.log(a); //显示  1
        function age() {
            let a = 2
            console.log(a); //显示  2
            // let a = 3 //在次声明let变量   就会报错
        }
        age();
    </script>

     二.const定义常量

使用const定义常量必须赋值初始化,一个页面只能声明一个常量,常量可以不常受函数作用域的影响,常量定义了不可在改变,改变就会报错,const也没有变量提升,预解析的概念
        
 
    <script>
        const con = 1;
        // const con = 2; //报错   页面上只常量不能冲突不然报错 

        function fn() {
            console.log(con); //显示1    常量不受作用域影响
        }
        fn()
    </script>

三.模板字符串

模板字符串,作为es6新增语法 ,用法是 两个单引号 将整个字符串包起来,其中使用 ${}来包裹一个变量或者一个表达式,常量等等.....
    <script>
        let a = 10;
        let b = 20;
        let c = `a变量等于${a}b变量等于${b}`;
        console.log(c); //输出结果 :a变量等于10b变量等于20
    </script>

四.解析结构
    1.解析数组
数组以序号--对应的,按有序的对应关系进行解析结构
    <script>
        let row = [123]; //定义变量
        let [a, b, c] = row; // 解析结构 方式解析数组
        console.log(a); // 输出结果 :1
        console.log(b); // 输出结果 :2
        console.log(c); // 输出结果 :3
    </script>

    2.解析对象
对象以属性名一一对象属性值 , 和解析结果数组一样

    <script>

        let obj = {aaa: 10,bbb: 20,ccc: 30}; //创建一个 对象
        let {aaa,bbb,ccc} = obj; // 解析机构 对象只能解析键值对
        //也就是解析对象只能是 键名
        console.log(aaa); // 10
        console.log(bbb); //20
        console.log(ccc); //30

        //解析结构设置别名 
        let {aaa:name,bbb:age,ccc:sex} = obj; // 
        console.log(name); // 10
        console.log(age); //20
        console.log(sex); //30
    
    </script>
    
五.箭头函数
    1.箭头函数里面没有this指向,箭头函数的this指向上下文的this值作为this指向,如果没有则指向window对象
    
    <script>
        //写法
        //箭头函数 没有函数名 只能通过赋值给一个变量 在调用这个变量触发函数
        let row = (con=> {
            console.log(con);
        }
        row(10);
    </script>

六.Class类
Class类的概念是ES6中增加的语法,可以使用Class关键词声明一个类,之后以这个类来实例化对象,类抽取了对象的公共部分,它泛指某一大类对象特指某一个,通过类实例化一个具体的对象

    class类对于初学者来说很难理解,比如为什么需要用class类    为什么  class  和对象  一样  拥有属性和方法  直接写对象不好吗?   我在这里一样解释一下   :    class类可以说就是对象的升级版  主要用法 就更清楚,更明白的 开发面向对象程序,为什么需要面向对象开发? ,面向对象开发  更清晰可见,方便维护,不会因为一个地方出错整个程序奔溃掉, 
    <script>
        class Str {
            constructor(nameage) { //construct函数就相当于 对象属性
                this.name = name;
                this.age = age;
            }
            sex() { //sex()函数相当于  对象方法
                console.log('男');
            }
            status() { // status()函数相当于  对象方法
                console.log('200');
            }
        }
        const st = new Str('张三'44);                 //通过new关键字创建  st实例化对象
        console.log(st); //{name: "张三", age: 44}      // 输出st实例化对象  
        console.log(st.name); //张三                    //调用st实例化对象 下面的name属性
        console.log(st.age); // 44                      //调用 st实例化对象 下面的age属性
        st.sex() //男                                   //调用 st实例化对象  下面的 sex方法
        st.status() //200                               //调用 st实例化对象  下面的 status方法
    </script>
    注意事项:
    1.通过class关键词创建类,类名尽量大写
    2.类里面有给constraint函数,可以接收传递过来的参数,同时返回实例对象
    3.construct函数 只要 new 生成实例时,就会自动调用这个函数,如果我们不写这个函数,类也会自动生成这个函数
    4.多个函数方法之间不需要添加逗号分隔
    5.生成实例 new 不能省略
    6.语法规范 创建类 类名后面不要加小括号,生成实例,类名后面加小括号,构造函数不需要加function

  七.类的继承 extends
    1.使用 extends 关键字  继承类 父类的所以的方法 , 方法都在原型
    2.使用 super  关键词继承类的属性 

  
    <script>
        class Str {
            constructor(nameage) { //construct函数就相当于 对象属性
                this.name = name;
                this.age = age;
            }
            sex() { //sex()函数相当于  对象方法
                console.log('男');
            }
            status() { // status()函数相当于  对象方法
                console.log('200');
            }
        }
        const st = new Str('张三'44); //通过new关键字创建  st实例化对象
        console.log(st); //{name: "张三", age: 44}      // 输出st实例化对象  
        console.log(st.name); //张三                    //调用st实例化对象 下面的name属性
        console.log(st.age); // 44                      //调用 st实例化对象 下面的age属性
        st.sex() //男                                   //调用 st实例化对象  下面的 sex方法
        st.status() //200                               //调用 st实例化对象  下面的 status方法

        //类的继承
        class Row extends Str { // 子类Row继承父类 Str 的方法
            constructor(nameagerole) {
                super(name, age); //使用super 继承父类的属性 必须写在this前面
                this.role = role;
            }
        }
        var son = new Row('张三'18'男');
        console.log(son); // Row {name: "张三", age: 18, role: "男"}
        son.sex(); //男
        son.status(); // 200
    </script>




×

感谢您的支持,我们会一直保持!

扫码支持
请土豪扫码随意打赏

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

打赏作者
版权所有,转载注意明处:前端笔记 » ES6新增的常用语法

发表评论

路人甲 表情
Ctrl+Enter快速提交

网友评论(0)