2023最新大厂前端面试题1
1.使用过ES6语法的什么内容?
答:
模板语法(在模板字符串中,空格、缩进、换行都会被
保留;模板字符串完全支持“运算”式的表达式,你可以在
${}里完成一些计算);
箭头函数;
let 和 const;
对象与数 组的解构;
promise相关语法
2.富文本应该怎么预防 XSS攻击?
答:最正确的做法其实是使用第三方插件,而插件的原理主要是把整个 DOM 转换成字符串转义掉其中的字符再变成 DOM(可以自己控制长度,性能问题不大)。
3.axios 怎么解决跨域问题?
两种方法,一种是 CORS 将问题转给后端,前端在调用 API 的时候记得加 CORS headers。
另一种是采用 nginx 做一个反向代理(推荐)下图是 node 环境而不是 nginx,不过 vue 提
供了 fig.js 配置表,可以传给 node.js 来实现各项配置,既然是 node 那么执行的就是 commonJS 规范。
4.箭头函数与普通函数有什么区别?
箭头函数没有prototype(原型),所以箭头函数本身
没有 this;
箭头函数的 this 在定义的时候继承自外层第一个普通函
数的 this; js arguments
如果箭头函数外层没有普通函数,严格模式和非严格模式
下它的 this 都会指向 window(全局对象);
箭头函数本身的 this 指向不能改变,但可以修改它要继
承的对象的 this;
箭头函数的 this 指向全局,使用 arguments 会报未声明
的错误;
箭头函数的 this 指向普通函数时,它的 arguments 继承于
该普通函数;
使用 new 调用箭头函数会报错 , 因为箭头函数没有constructor;
箭头函数不支持new.target;
箭头函数不支持重命名函数参数,普通函数的函数参数支持重命名;
箭头函数相对于普通函数语法更简洁优雅。
更加简洁的答法:
箭头函数写法更精简;
箭头函数没有 prototype 原型所以没有自己的 this,会捕获其所在的上下文的 this 值,并且不能通过 call()和apply()
来改变其 this;
箭头函数是匿名函数,不能作为构造函数,不能使用 new ;
箭头函数不能使用 arguments;
箭头函数没有原型。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论