微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

面试题汇总 JSES6

一、新增数据类型Symbol

  概念:

    Symbol代表独一无二的

    Symbol类型的值通过Symbol函数生成,同时Symbol函数返回的值的唯一的

    Symbol函数可以接收字符串作为参数,但是即使相同参数返回的值也是唯一的

  作用:

    属性私有化

    数据保护

        //没有参数的情况
        var s1=Symbol();
        var s2=Symbol();
        s1===s2;    //false

        //有参数的情况
        var s1=Symbol("foo");
        var s2=Symbol("foo");
        s1===s2;    //false

        var mySymbol=Symbol();
        //第一种写法
        var a={};
        a[mySymbol]="Hello!";
        //第二种写法
        var a={
            [mySymbol]:"Hello!"
        };
        //第三种写法
        var a={};
        Object.defineProperty(a,mySymbol,{value:"Hello!"});
        //枚举symbol的key值
        Object.getownPropertySymbols(obj);
        //注意:Symbol作为对象的key值不能被fon in进行遍历

 

二、块级作用域

  概念:在ES6中,凡是{}包裹的代码都是块级作用域,凡是在块级作用域中用let const声明的变量都在有一个暂时性死区。

        {
            let a=20;
        }
        console.log(a);//报错

 

三、var let const声明变量

  var

    支持变量声明与解析

    不支持块级作用域

    允许重复声明

  let

    不支持变量声明与解析

    支持块级作用域

    不允许重复声明

    用let声明的变量或者方法只会在代码块中生效

    {

      let a=10;

      var b=20;

    }

    console.log(a);  //报错

  const

    不支持变量声明与解析

    支持块级作用域

    不允许重复声明

    声明常量,一旦声明不可修改

    声明常量必须赋值,不能和var一样声明后再定义

 

四、解构赋值

  概念:允许按照一定的格式,从对象和数组中提取值

        //数组解构
        let [a,b,c]=[1,2,3];

        //对象解构---对象解构时,key值必须要一一对应
        let {name,age}={name:"孙艺珍",age:20};

        //对象解构+别名
        let {name:_name,age:_age}={naem:"孙艺珍",age:20};

        //多重解构
        let {obj:{name},arr:[a,b]}={obj:{name:"孙艺珍",arr:[10,20]}};
        
        //案例
        let {left:l,top:t}=document.getElementById("Box");

 

五、扩展运算符

  概念:将数组或对象转换成参数序列,使用逗号分隔的序列。

  作用:

    1、数组、对象的合并

    2、函数剩余参数

    3、替代arguments

        //数组合并
        var arr1=[10,20,30];
        var arr2=[40,50,60];
        var newArr=[...arr1,...arr2];

        //展开数组
        console.log(Math.max(...arr));

        //对象合并
        var obj1={width:100,height:100};
        var obj2={left:100,top:100};
        var newObj={...obj1,...obj2};

 

六、字符串模板

  

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐