欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

面试题之ES6

程序员文章站 2023-12-21 23:33:04
...

ES6新增特性

  • 块级作用域,只能在当前声明的代码块中使用:let, const ,其中 const是常量;
  • 定义类的语法糖:class
  • 新增基本数据类型:Symbol,特点:唯一性,隐藏性
唯一性:
	let id = Symbol("id")
	let id2 = Symbol("id")
	console.log(id == id2)    //false	
	
隐藏性:(for...in, Object.keys() 获取不到)
	let id = Symbol("id")
	let obj={
		[id]:'symbol'
	}
	for(let key in obj){
		console.log(obj[key])   //空
	}
	
获取方法:(使用Object.getOwnPropertySymbols方法会返回一个数组,可以获取到当前对象的所有用作属性名的Symbol值)
	let id =Symbol("id")
    let id2=Symbol("id2")
    let obj={
      [id]:'id',
      [id2]:'id2',
      'sdfdf':'sfdfd'
    }
    console.log(Object.getOwnPropertySymbols(obj))  //[Symbol(id), Symbol(id2)]
  
虽然有唯一性,但是不排除有多次使用同一个symbol值的情况:
	let id =Symbol.for("id")   //检测到未创建,创建
	let id2 = Symbol.for("id")  //检测到已创建,直接返回
	console.log(id == id2)   //true
	console.log(Symbol.for("name"))  //Symbol(name)
	console.log(Symbol.keyFor("name"))  //'name'
  • 变量的解构赋值:{a,b,c} = abc;
  • 函数可以设置默认值,箭头函数;
  • 模块化:import/export
  • Set/Map
Set():是一个能够存储无重复值的有序列表,内部使用 Object.is() 方法来判断两个数据项是否相等;
常用属性和方法:
	set.add(value):添加一个数据项
	set.has(value):判断某个数据项是否存在
	set.delete(value):删除某个数据项
	set.cleat():删除所有数据项
	set.forEach(funtion(value,key,own){ ... }) :参数为元素值,索引,将要遍历的对象
	set.size : 列表的数量
	
WeakSet(): 和Set有点类似,但不接受基本数据类型,只接受对象,没有forEach()方法和size 属性
Map(): 类似于对象,是一个存储键值对的集合,但键的范围不仅是字符串,所有类型的值包括对象都可以当做键;
常用属性和方法:
	map.has(key) :查找key,返回布尔值
	map.get(key):根据key查找value
	map.set(key,value):添加键值对
	map.delete(key):删除指定key的键值对
	map.clear():删除所有键值对
	map.size: 获取存储的数量
  • Proxy
  • 生成器:Generator / 遍历器:Iterator
  • 扩展运算符 :…
  • 数组和对象新增的API 和方法
相关标签: javascript

上一篇:

下一篇: