面试题汇总 JS(ES6)

匿名 (未验证) 提交于 2019-12-03 00:12:02

一、新增数据类型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};

 

六、字符串模板

  

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!