面试题节选六

一、方法会直接在一个对象上定义一个新属性,或者修改一个对象的现有属性,并返回此对象语法和参数。

Object.defineProperty(obj,prop,descriptor)
obj要定义属性的对象
prop定义或修改的属性的名称或Symbol
descriptor定义或修改的属性描述符

二、Symbol与Symbol.for与Symbol.keyFor的区别。

Symbol.for()与Symbol()这两种写法,都会生成新的 Symbol。
它们的区别是,前者会被登记在全局环境中供搜索,后者不会
Symbol.for()不会每次调用就返回一个新的 Symbol 类型的值,而是会先检查给定的key是否已经存在,如果不存在才会新建一个值
Symbol.keyFor() 方法返回一个已登记的 Symbol 类型值的 key

三、Map方法中,什么方法可以返回一个新的迭代对象,对象中每个元素是数组、键、值。

map.keys(); map.values(); map.entries();

四、For…of和foreach区别。

for…of
1.可以避免for in循环中的陷阱
2.不同于forEach,它可以使用return,break,continue来终止循环
3.它不仅仅支持数组的遍历,同时也适用于很多类似数组的对象
4.还可遍历字符串
5.并不能处理原有的而原生对象
6.他不能遍历一个普通的对象,只有在对象中部署了 Symbol.iterator 属性, 才具有 iterator接 口可以使用 for of循环
7.如果不部署Symbol.iterator 属性,想遍历普通对象,需要联合Object.keys()来使用

forEach
1.他不能使用return,break,continue来终止循环,
2.在回调函数内不管传入任何形式 的参数,都会返回undifind
3.在回调函数内部有三个参数,item,index,arr分别代表,当前项,当前项的下标,数组本身.
4.它会对数组的每一个元素执行一次提供的函数,不改变原数组,没有返回值undifind

五、什么可以从一个类似数组或可迭代对象创建一个新的,浅拷贝。

Array.from(arrayLike[, mapFn[, thisArg]])
arrayLike:想要转换成数组的伪数组对象或可迭代对象。
mapFn::回调 thisArg回调第二个this 对象

六、过滤器

filter作对比,谁点filter,点的是被比较的

七、Set、Map区别(3个)

Set:
(1) 成员不能重复
(2)只有键值没有键名,类似数组
(3)可以遍历,方法有add, delete,has
Map:
(1)本质上是健值对的集合,类似集合
(2)可以遍历,可以跟各种数据格式转换

八、js中监听事件语法(可兼容IE写法)。

element.addEventListener(event, function, useCapture);
element.attachEvent(event, function);
element.detachEvent(event, function);

九、什么是解构赋值?

从数组和对象中提取值,对变量进行赋值

十、使用箭头函数应该注意些什么?(至少三个)

1、用了箭头函数,this就不是指向window,而是父级(指向是可变的)
2、不能够使用arguments对象
3、不能用作构造函数,这就是说不能够使用new命令否则会抛出一个错误
4、不可以使用yield命令,因此箭头函数不能用作 Generator 函数

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值