前端大厂面试题1

选择题
display 属性的常用值不包括?
Answer©
A. inline
B. block
C. hidden
D. none
以下代码运行的结果是?
Answer(B)
function changeObjProperty(o) {
o.siteUrl = “http://www.baidu.com”
o = new Object()
o.siteUrl = “http://www.google.com”
}
let webSite = new Object();
changeObjProperty(webSite);
console.log(webSite.siteUrl);
A. http://www.google.com
B. http://www.baidu.com
C. null
D. [object Object]
[typeof null, null instanceof Object] 这些类型的结果是
Answer(A)
A. [“object”, false]
B. [null, false]
C. [“object”, true]
D. other
下列说法正确的是
Answer(AB)
A. 样式文件的加载会阻塞脚本的执行
B.iframe 会阻塞主页面的 load 事件
C.、 中的资源下载会阻塞页面解析
D. 页面文档完全加载并解析完毕之后会触发 DOMContentLoaded 事件
下列说法正确的是
Answer(ACD)
A. requestAnimationFrame(foo) 确保使浏览器在下一次重绘之前调用 foo 方法
B. 在 addEventListener 的处理方法中使用 e.preventDefault() 可以阻止事件冒泡
C. 把

function demo2() {
return Promise.resolve().then(demo2)
}
Answer
demo 不会,setTimeout 的作用是等待给定的时间后为它的回调产生一个新的宏任务;demo2 会,如果在微任务执行期间微任务队列加入了新的微任务,会将新的微任务加入队列尾部,之后也会被执行

什么是跨域?如何解决?
Answer
跨域限制是浏览器特有的行为(服务端不存在),出于安全考虑,浏览器不允许脚本获取其他域下资源
同源:协议、端口、域名(子域之间也存在跨域)三者完全相同,才不会产生跨域问题
解决跨域问题
1.反向代理: 通过同源服务端进行请求代理
2.CORS: 服务端设置header Access-Control-Allow-Origin、Access-Control-Allow-Headers、Access-Control-Allow-Methods
3.JSONP: 主要利用script标签开放策略,让服务器端返回可执行的Javascript函数(不常用且只能作用于get请求)
Coding
reverseLowerUpper
/**

  • @description 使用 javascript 实现 reverseLowerUpper 方法,对字符串进行大小写反转
  • @param {String} 待处理的字符串
  • @returns {String} 处理后的字符串
  • @example
  • reverseLowerUpper(‘AbC’) // return ‘aBc’
  • reverseLowerUpper(‘ZZa’) // return ‘zzA’
    /
    Test Case
    describe(‘reverseLowerUpper’, () => {
    it(‘test AbcDefGh’, () => expect(reverseLowerUpper(‘AbcDefGh’)).to.be.equal(‘aBCdEFgH’))
    it(‘test Notes’, () => expect(reverseLowerUpper(‘Notes’)).to.be.equal(‘nOTES’))
    })
    preorderTraversal
    /
    *
  • @description 使用 javascript 实现 preorderTraversal 方法,进行二叉树先序遍历
  • @param {Object} 待处理的二叉树结构
  • @returns {Array} 遍历后结果
  • @example preorderTraversal({
  • val: 1,
  • left: null,
  • right: {
  • val: 2,
    
  • left: { val: 3, left: null, right: null },
    
  • right: null,
    
  • },
  • }) // return [1, 2, 3]
    */
    Test Case
    describe(‘preorderTraversal’, () => {
    const tests = [
    {
    input: {
    val: 1,
    left: null,
    right: {
    val: 2,
    left: { val: 3, left: null, right: null },
    right: null,
    },
    },
    output: [1, 2, 3],
    },
    {
    input: {
    val: 1,
    left: null,
    right: {
    val: 2,
    left: null,
    right: {
    val: 3,
    left: { val: 4, left: null, right: null },
    right: null,
    },
    },
    },
    output: [1, 2, 3, 4],
    },
    {
    input: {
    val: 1,
    left: {
    val: 2,
    left: null,
    right: { val: 3, left: null, right: null },
    },
    right: {
    val: 4,
    left: null,
    right: { val: 5, left: null, right: null },
    },
    },
    output: [1, 2, 3, 4, 5],
    },
    ]

tests.forEach((test) => {
it(test ${test.input}, () => expect(preorderTraversal(test.input)).to.deep.equal(test.output))
})
})

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小张很嚣张~

支持一下小老弟吧~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值