es6

es6

ES6的新增语法

let

ES6中新增的用于声明变量的关键字。

●let声明的变 量只在所处于的块级有效

●不存在变量提升

●暂时性死区

//let变量只在其所处的块级作用域(就是大括号{})有效
        if(true){
            let a=10
        }
        console.log(a);//a is not defined
        //使用let关键字没有变量提升
        console.log(b);
        let b=5;//b is not defined
        //使用let关键字变量具有暂时性死区的特性
        var num=1;
        if(true){
            console.log(num);
            let num=9

        }

注意:使用let关键字声明的变量才具有块级作用域,使用var声明的变量不具备块级作用域特性。
在这里插入图片描述

在这里插入图片描述

const

作用:声明常量,常量就是值(内存地址)不能能化的量。

●具有块级作用域

●声明常量时必须赋值,且复值后不能被修改

//const声明的变量具有块级作用域
        if(true){
            const a=10;
            if(true){
                const a=20;
                console.log(a);
            }
            console.log(a);
        }
        console.log(a);
        //const声明对象必须赋值
        const a;//错误
       /*  const声明的常量不能修改,声明的复杂数据类型比如数组,
        它内部的元素可以更改,但是不能直接给数组赋值*/
        

在这里插入图片描述

解构赋值

ES6中允许从数组中提取值,按照对应位置,对变量赋值。对象也可以实现解构。

数组解构
如果解构不成功,变量的值为undefined.

var arr=[123,456,789];
        let [a,b,c]=arr;
        console.log(a);
        console.log(b);
        console.log(c);

对象解构

let o={
            name:'ldh',
            age:18
        }
        let {name,age}=o;
        console.log(name);
        console.log(age);
        //把o.name赋值给myname这个变量
        let {name:myname}=o;
        console.log(myname);

箭头函数

ES6中新增的定义函数的方式。

函数体中只有一句代码, 且代码的执行结果就是返回值,可以省略大扩号

如果形参只有一个,可以省略小括号

箭头函数没有绑定this关键字,箭头函数中的this,指向的是函数定义位置的上下文this

const fn=()=>{
            console.log(123);
        }
        fn();
        //函数体中只有一句代码,且代码的执行结果就是返回值,可以省略大括号
        const sum=(num1,num2)=>num1+num2;
        console.log(sum(1,2));
        //如果形参只有一个,可以省略小括号
        const f=v=>alert(v)
        f(3);
        //箭头函数无this关键字,其this随包含它的函数中的this指向
        const o={
            name:'san'
        }
        function fns(){
            console.log(this);
            return ()=>{
                console.log(this);
            }
        }
        var k=fns.call(o);
        k()

例题:

 var  name='lucy'
        var o={
            name:'andy',
            say:()=>{
                console.log(this.name);
                
            }
        }
        //undifidend是因为函数没有返回值
      console.log(o.say());

剩余参数

剩余参数语法允许我们将一个不定数量的参数表示为一个数组。

const fn=(...args)=>{
            let local=0;
            args.forEach((item)=>{
                local+=item
            })
        return local;
        }
        console.log(fn(10,20,30));

剩余参数还可以跟数组解构联系

let arr=['a','b','c'];
    let [s1,...s2]=arr;
    console.log(s1);
    console.log(s2);

ES6的内置对象扩展

Array的扩展方法

扩展运算符(展开语法)

扩展运算符可以将数组或者对象转为用逗号分隔的参数序例。

扩展运算符可用于合并数组

扩展运算符可用于将伪数组转换为真正的数组,从而使用数组的方法

 //扩展运算符可以将数组或者对象转变为用逗号分隔的参数
        let arr=['a','b','c'];
        console.log(...arr);
        //数组合并1
        let a=[1,2,3];
        let b=[4,5,6];
        let c=[...a,...b]
        console.log(c);
        //数组合并2
        a.push(...b);
        console.log(a);
           //扩展运算符可用于将伪数组转换为真正的数组,从而使用数组的方法
        var btns=document.querySelectorAll('button');
        var k=[...btns]

Array的扩展方法

构造函数方法: **Array.from()**将类数组或可遍历对象转换为真正的数组

方法还可以接受第二个参数,作用类似于数组的map方法,用来对每个元素进行处理,将处理后的值放入返回的数组。

 //from可以将一个伪数组转换成真数组,第二个参数可以是一个函数
        var o = {
            '0': '3',
            '1': '6',
            '2': '9',
            'length': 3
        }
        var k = Array.from(o, item => item * 2);
        console.log(k);

实例方法: find()

用于找出第一一个符合条件的数组成员,如果没有找到返回undefined

用于找出第一一个符合条件的数组成员的位置,如果没有找到返回-1

 //find方法可以找出第一个符合条件的数组成员
        //findindex方法可以第一个符合条件的数组成员的索引号
        var k = [{
            id: 1,
            name: 'ldh'
        },
        {
            id: 2,
            name: 'zxy'

        }
        ];
        var p=[1,2,3,4,5]
        let g=k.find(item=>k.id=1);
        let f=p.findIndex(function(value){
            return value>3
        })
        console.log(g);
        console.log(f);

实例方法: includes()

表示某个数组是否包含给定的值,返回布尔值。

//includes方法用于寻找数组是否有该元素,返回的是布尔值
        var k=[1,2,3,4,5];
        let g=k.includes(3);
        let m=k.includes(7);
        console.log(g);
        console.log(m);

String的扩展方法

模板字符串

ES6新增的创建字符串的方式,使用反引号定义。

模板字符串中可以换行

在模板字符串中可以调用函数。

//模板字符串中可以解析变量
        let a = `pink`;
        let b = `${a}老师`
        console.log(b);
        //模板字符串中可以调用函数
        function f() {
            return 'abc'
        }
        let c = `${f()}`
        console.log(c);
        //模板字符串中可以换行
        let html = `123
456`
        console.log(html);

String的扩展方法

实例方法: startsWith() 和endsWith()

●startsWith(): 表示参数字符串是否在原字符串的头部,返回布尔值
●endsWith(): 示参数字符串是否在原字符串的尾部,返回布尔值

 //startsWith方法判断是否以某个或某些字符开头,返回布尔值
        //endsWith方法判断是否以某个或某些字符结尾,返回布尔值
        let a='hello world!';
      console.log( a.startsWith('h'));
      console.log(a.endsWith('world!'));

实例方法: repeat()

repeat方法表示将原字符串重复n次,返回一个新字符串。

//repeat方法表示将一个字符串重复多少次
        let a='asdf'
        console.log(a.repeat(5));

Set数据结构

ES6提供了新的数据结构Set。它类似于数组,但是成员的值都是唯一的, 没有重复的值。

Set本身是一个构造函数,用来生成Set数据结构。

const s = new Set();

Set函数可以接受一个数组作为参数, 来初始化。

const set = new Set([1, 2,3, 4, 4]);

实例方法

●add(value): 添加某个值,返回Set结构本身

●delete(value): 删除某个值,返迥一个布尔值,示删除是否成功

●has(value): 返回一个布尔值,表示该值是否为Set的成员

●clear(): 清除所有成员,没有返回值

遍历

Set结构的实例与数组一样,也拥有forEach方法, 用于对每个成员执行某种操作,没有返回值。

//set数据结构类似数组,但是其成员的值不重复
        //s1.size检测长度
       const s1=new Set(['1','2']);
       console.log(s1.size);
       //利用set进行数组去重
       const s2=new Set(['a','a','c','c'])
       var o=[...s2]
       console.log(o);
       //set的方法:add,delete,has,clear
       const s=new Set();
       s.add(1).add(2).add(3);
       console.log(s.size);
       s.delete(3);
       console.log(s.size);
     console.log(  s.has(2));
       s.clear()
       console.log(s.size);
       //从set数据中取出用foreach遍历
       let a=new Set([1,2,3,4,5,6]);
       a.forEach(value=>{
        console.log(value);
       })
已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 1024 设计师:白松林 返回首页